Plugin Directory

Changeset 2904680


Ignore:
Timestamp:
04/26/2023 04:30:38 PM (3 years ago)
Author:
studiopress
Message:

Deploying version 0.1.7

Location:
pattern-manager
Files:
4 added
4 deleted
26 edited
1 copied

Legend:

Unmodified
Added
Removed
  • pattern-manager/tags/0.1.7/README.md

    r2887723 r2904680  
    55Requires at least: 6.1
    66Tested up to: 6.2
    7 Stable tag: 0.1.6
     7Stable tag: 0.1.7
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    4747 * Find and copy all image files used into your theme.
    4848
     49## Docs & Repo
    4950
    50 ## Help & Docs
    51 
    52 User and developer docs for Pattern Manager [can be found here](https://developer.wpengine.com/pattern-manager/).
     51* [User and developer docs](https://developer.wpengine.com/pattern-manager/)
     52* [GitHub repo](https://github.com/studiopress/pattern-manager/)
    5353
    5454## Installation
     
    9191## Screenshots
    9292
    93 1. A dedicated inferface to browse, design, build, and save WordPress pattern files.
     931. A dedicated interface to browse, design, build, and save WordPress pattern files.
    94942. Easily assign pattern categories, keywords, descriptions, and more.
    9595
    9696## Changelog
    9797
     98### 0.1.7
     99* Add a link to the GitHub repo.
     100
    98101### 0.1.6
    99102 * Readme file changes.
    100  
     103
    101104### 0.1.5
    102105 * Initial release.
  • pattern-manager/tags/0.1.7/pattern-manager.php

    r2887723 r2904680  
    33 * Plugin Name: Pattern Manager
    44 * Description: Create and maintain patterns.
    5  * Version: 0.1.6
     5 * Version: 0.1.7
    66 * Author: WP Engine
    77 * Author URI: wpengine.com
     
    4040            // If the module data exists, load it.
    4141            require $filepath;
    42         } else {
    43             // Translators: The name of the module, and the filename that needs to exist inside that module.
    44             echo esc_html( sprintf( __( 'The module called "%1$s" has a problem. It needs a file called "%2$s" to exist in its root directory.', 'pattern-manager' ), $module_name, $filename ) );
    45             exit;
    4642        }
    4743    }
  • pattern-manager/tags/0.1.7/wp-modules/api-data/api-data.php

    r2887710 r2904680  
    113113 * @return bool
    114114 */
    115 function permission_check() {
     115function permission_check(): bool {
    116116    return current_user_can( 'manage_options' );
    117117}
  • pattern-manager/tags/0.1.7/wp-modules/app/app.php

    r2887710 r2904680  
    6868/**
    6969 * Set the URL for the link in the menu.
     70 *
     71 * @return string The page's hook suffix.
    7072 */
    71 function patternmanager_adminmenu_page() {
    72     add_menu_page(
     73function pattern_manager_admin_menu_page() {
     74    return add_menu_page(
    7375        __( 'Patterns', 'pattern-manager' ),
    7476        __( 'Patterns', 'pattern-manager' ),
     
    8082    );
    8183}
    82 add_action( 'admin_menu', __NAMESPACE__ . '\patternmanager_adminmenu_page' );
     84add_action( 'admin_menu', __NAMESPACE__ . '\pattern_manager_admin_menu_page' );
    8385
    8486/**
  • pattern-manager/tags/0.1.7/wp-modules/app/js/build/index.asset.php

    r2887710 r2904680  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'b221603e0b4f10657559');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => '7ebb3b65857a52bd5744');
  • pattern-manager/tags/0.1.7/wp-modules/app/js/build/index.css

    r2887710 r2904680  
    1 html body.toplevel_page_pattern-manager{height:100% !important;background:#fff}.interface-interface-skeleton__html-container{padding-top:0 !important}.toplevel_page_pattern-manager #wpcontent{padding-left:0}#wpfooter{display:none}#wpbody{height:100%;background:#f1f1f1}.editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper>*,.editor-styles-wrapper .block-editor-block-list__layout.is-root-container>*,.wp-block{max-width:initial}.components-snackbar{z-index:999999999999;position:fixed;bottom:10px;left:10px;border:1px solid rgba(255,255,255,.2784313725)}#pattern-manager-app{box-sizing:border-box;background:#f1f1f1;font-size:16px}#pattern-manager-app *{box-sizing:border-box !important}#pattern-manager-app .pattern-manager-header-container{z-index:10;position:-webkit-sticky;position:sticky;display:flex;justify-content:flex-end;align-items:center;width:100%;gap:1.5rem;flex-shrink:0;flex-wrap:wrap;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);margin-left:auto;margin-right:auto;padding:1rem 3rem 1rem 3rem;top:32px}@media(max-width: 782px){#pattern-manager-app .pattern-manager-header-container{top:46px}}#pattern-manager-app .pattern-manager-header-container .header-container-logo{position:relative;margin-right:auto;text-align:center;display:table}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-svg{height:30px;width:30px}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-title{display:table-cell;font-size:16px;font-weight:600;vertical-align:middle;padding-left:10px;padding-bottom:4px}#pattern-manager-app .pattern-manager-header-container .header-container-inner{display:flex;flex-wrap:wrap;gap:.5rem}#pattern-manager-app .patternmanager-theme-patterns{width:100%;padding:3rem;border:solid 3rem #f1f1f1;border-radius:2px;background:#fff}@media(max-width: 1024px){#pattern-manager-app .patternmanager-theme-patterns{border-width:2rem;padding:2rem}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner{font-size:14px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{display:grid;grid-template-columns:300px 1fr;grid-gap:3rem}@media(max-width: 1200px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:220px 1fr}}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:1fr}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar{display:block}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search{margin-bottom:2.5rem}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search-count{margin-top:-24px;font-weight:600}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-categories{display:flex;flex-wrap:wrap;gap:5px}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:block;height:48px;margin-bottom:2px;text-align:left;width:100%}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:inline-flex;width:unset}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):hover,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):focus-visible{background:#f5f5f5;transition:all .2s ease;color:var(--wp-admin-theme-color)}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .grid-empty{margin-left:auto;margin-right:auto;padding:2.5rem;width:auto;text-align:center;background:#fff;border-radius:.25rem}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid{width:100%;display:grid;grid-template-columns:repeat(3, minmax(300px, 1fr));grid-gap:2rem}@media(max-width: 1729px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr))}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item{position:relative;box-sizing:border-box;margin-bottom:50px;min-height:300px;border:solid 1px #ddd;border-radius:5px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item::before{content:"";display:block}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner{height:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview{display:flex;z-index:0;flex-grow:1;position:relative;height:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader{position:absolute;top:0;left:0;width:100%;height:300px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader::before{display:block;content:" ";border:3px solid rgba(0,0,0,0);border-top:3px solid #c7c7c7;border-radius:50%;width:30px;height:30px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px)}@-webkit-keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-outer{position:relative;width:100%;display:flex;align-items:center;border-radius:5px;min-height:300px;overflow:hidden}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-inner{overflow:hidden}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview iframe{-webkit-animation:.6s ease 0s normal forwards 1 fadein;animation:.6s ease 0s normal forwards 1 fadein}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions{position:absolute;bottom:20px;width:100%;margin-left:auto;margin-right:auto;padding:20px;opacity:0}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions a.item-action-button{border-right:1px solid #404040}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button{z-index:50;background:rgba(0,0,0,0);cursor:pointer;color:#c6c6c6;height:46px;justify-content:center;padding:15px 20px;transition:.1s ease}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button:hover{color:#fff}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-icon{fill:currentcolor;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);width:20px;height:20px;margin-right:4px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-button-text{display:inline-block;position:relative;font-size:15px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator{position:relative}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator::after{content:"";position:absolute;right:0;border-right:1px solid #404040;top:0;bottom:0}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions-inside{background:#1e1e1e;border-radius:6px;display:grid;grid-auto-columns:minmax(0, 1fr);grid-auto-flow:column}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within{border:1px solid #006ba1;border-radius:5px;transition:all .2s ease-in-out}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover .item-actions,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within .item-actions{opacity:1;transition:all .2s ease-in-out}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-pattern-preview-heading{display:flex;justify-content:center;background:#fff;padding:1rem;position:absolute;bottom:-52px;width:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-no-patterns-found{font-weight:400}#pattern-manager-app .patternmanager-pattern-editor-loading-outer{justify-content:center;align-items:center;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner{display:flex;margin-left:auto;margin-right:auto;justify-content:center;align-items:center;width:100%;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner span{padding-left:.25rem;padding-right:.25rem;font-weight:600}#pattern-manager-app .patternmanager-pattern-editor-columns{width:100%;height:calc(100vh - 64px - 32px);display:grid;grid-template-columns:minmax(200px, 1fr) 280px;-moz-column-gap:0;column-gap:0}#pattern-manager-app .patternmanager-pattern-editor-columns .editor-styles-wrapper{height:100%;padding:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column{position:relative;overflow-y:scroll;background-color:#fff}#pattern-manager-app .patternmanager-pattern-editor-columns .column:first-child{padding-top:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column>:last-child{background:#fff;height:32px;border-top:1px solid #e0e0e0}#pattern-manager-app .patternmanager-pattern-editor-columns .column:last-child{background:#fff}#pattern-manager-app summary::marker,#pattern-manager-app summary::-webkit-details-marker{color:rgba(0,0,0,0);content:"";display:none}#pattern-manager-app summary::after{content:url("data:image/svg+xml,%3Csvg width=%2714%27 height=%278%27 viewBox=%270 0 14 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M1.50002 1L7.00002 6L12.5 1%27 stroke=%27%231E1E1E%27 stroke-width=%271.5%27/%3E%3C/svg%3E");display:inline-block;float:right}#pattern-manager-app details[open]>summary::after{transform:rotate(180deg)}.sidebar-closed .sticky{margin-left:60px}.components-modal__content{min-width:90vw;min-height:300px}input[type=checkbox]:checked::before{content:inherit}.components-modal__frame{max-height:90vh;min-height:90vh}.pm-type-boolean>div,.pm-type-string>div{@apply items-center}.pm-type-boolean .pm-label,.pm-type-string .pm-label{@apply col-span-2}.pm-type-boolean .pm-property,.pm-type-string .pm-property{@apply col-span-2}.pm-type-array .pm-label{@apply col-span-2}.pm-type-array .pm-property{@apply col-span-2}.pm-type-array input[type=checkbox],.pm-type-array input[type=radio],.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean input[type=checkbox],.pm-type-boolean input[type=radio],.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply w-[1.25rem] h-[1.25rem] rounded}.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply bg-wp-blue}.pm-type-array [type=checkbox]:checked:focus,.pm-type-boolean [type=checkbox]:checked:focus{@apply bg-wp-blue shadow-black}.pm-type-array [type=checkbox]:checked:hover,.pm-type-boolean [type=checkbox]:checked:hover{@apply bg-wp-blue-hover}.pm-font-sizes .pm-label,.pm-font-families .pm-label{@apply col-span-full}.pm-font-sizes .pm-property,.pm-font-families .pm-property{@apply col-span-full}.pm-typography-font-sizes>div,.pm-typography-font-families>div{@apply bg-gray-100 px-5 rounded}.pm-typography-font-sizes>div>div .grid,.pm-typography-font-families>div>div .grid{@apply gap-2 py-4}.pm-duotone .pm-property,.pm-gradients .pm-property,.pm-palette .pm-property{@apply col-span-full}.pm-duotone .pm-label,.pm-gradients .pm-label,.pm-palette .pm-label{@apply col-span-full}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pm-json-nav li{order:10}.pm-json-nav li:nth-child(2){order:1}.pm-json-nav li:nth-child(6){order:2}.pm-json-nav li:nth-child(4){order:3}.pm-json-nav li:nth-child(5){order:4}.pm-nav button:disabled{opacity:.6}.pm-nav ul{background:#1e1e1e;list-style:none;margin:0;padding-left:0;display:flex;border-radius:3px;gap:3px}.pm-nav li{color:#fff;position:relative;text-decoration:none;transition-duration:.3s;margin:0;border-radius:3px}.pm-nav li button{color:#fff;padding:8px 16px;border-radius:3px}.pm-nav li:hover,.pm-nav li:focus-within{background:#404040;cursor:pointer}.pm-nav li:focus-within button{outline:none}.pm-nav ul li ul{background:#1e1e1e;visibility:hidden;opacity:0;min-width:300px;position:absolute;transition:all .5s ease;margin-top:0;left:0;display:none;padding:10px 0;font-weight:400;gap:0}.pm-nav ul li ul li:hover{background:none}.pm-nav ul li ul li ul{left:300px;top:-10px;background:#2f2f2f}.pm-nav ul li ul li button{width:100%;text-align:left;color:#c6c6c6;transition-duration:.3s;padding:11px 16px}.pm-nav ul li ul li button:hover{color:#fff}.pm-nav ul li:hover>ul,.pm-nav ul li:focus-within>ul,.pm-nav ul li ul:hover,.pm-nav ul li ul:focus{visibility:visible;opacity:1;display:block}.pm-nav ul li ul li{clear:both;width:100%}
     1html body.toplevel_page_pattern-manager{height:100% !important;background:#fff}.interface-interface-skeleton__html-container{padding-top:0 !important}.toplevel_page_pattern-manager #wpcontent{padding-left:0}#wpfooter{display:none}#wpbody{height:100%;background:#f1f1f1}.editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper>*,.editor-styles-wrapper .block-editor-block-list__layout.is-root-container>*,.wp-block{max-width:initial}.components-snackbar{z-index:999999999999;position:fixed;bottom:10px;left:10px;border:1px solid rgba(255,255,255,.2784313725)}#pattern-manager-app{box-sizing:border-box;background:#f1f1f1;font-size:16px}#pattern-manager-app *{box-sizing:border-box !important}#pattern-manager-app .pattern-manager-header-container{z-index:10;position:-webkit-sticky;position:sticky;display:flex;justify-content:flex-end;align-items:center;width:100%;gap:1.5rem;flex-shrink:0;flex-wrap:wrap;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);margin-left:auto;margin-right:auto;padding:1rem 3rem 1rem 3rem;top:32px}@media(max-width: 782px){#pattern-manager-app .pattern-manager-header-container{top:46px}}#pattern-manager-app .pattern-manager-header-container .header-container-logo{position:relative;margin-right:auto;text-align:center;display:table}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-svg{height:30px;width:30px}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-title{display:table-cell;font-size:16px;font-weight:600;vertical-align:middle;padding-left:10px;padding-bottom:4px}#pattern-manager-app .pattern-manager-header-container .header-container-inner{display:flex;flex-wrap:wrap;gap:.5rem}#pattern-manager-app .pattern-manager-theme-patterns{width:100%;padding:3rem;border:solid 3rem #f1f1f1}#pattern-manager-app .patternmanager-pattern-editor-loading-outer{justify-content:center;align-items:center;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner{display:flex;margin-left:auto;margin-right:auto;justify-content:center;align-items:center;width:100%;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner span{padding-left:.25rem;padding-right:.25rem;font-weight:600}#pattern-manager-app .patternmanager-pattern-editor-columns{width:100%;height:calc(100vh - 64px - 32px);display:grid;grid-template-columns:minmax(200px, 1fr) 280px;-moz-column-gap:0;column-gap:0}#pattern-manager-app .patternmanager-pattern-editor-columns .editor-styles-wrapper{height:100%;padding:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column{position:relative;overflow-y:scroll;background-color:#fff}#pattern-manager-app .patternmanager-pattern-editor-columns .column:first-child{padding-top:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column>:last-child{background:#fff;height:32px;border-top:1px solid #e0e0e0}#pattern-manager-app .patternmanager-pattern-editor-columns .column:last-child{background:#fff}#pattern-manager-app summary::marker,#pattern-manager-app summary::-webkit-details-marker{color:rgba(0,0,0,0);content:"";display:none}#pattern-manager-app summary::after{content:url("data:image/svg+xml,%3Csvg width=%2714%27 height=%278%27 viewBox=%270 0 14 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M1.50002 1L7.00002 6L12.5 1%27 stroke=%27%231E1E1E%27 stroke-width=%271.5%27/%3E%3C/svg%3E");display:inline-block;float:right}#pattern-manager-app details[open]>summary::after{transform:rotate(180deg)}.sidebar-closed .sticky{margin-left:60px}.components-modal__content{min-width:90vw;min-height:300px}input[type=checkbox]:checked::before{content:inherit}.components-modal__frame{max-height:90vh;min-height:90vh}.pm-type-boolean>div,.pm-type-string>div{@apply items-center}.pm-type-boolean .pm-label,.pm-type-string .pm-label{@apply col-span-2}.pm-type-boolean .pm-property,.pm-type-string .pm-property{@apply col-span-2}.pm-type-array .pm-label{@apply col-span-2}.pm-type-array .pm-property{@apply col-span-2}.pm-type-array input[type=checkbox],.pm-type-array input[type=radio],.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean input[type=checkbox],.pm-type-boolean input[type=radio],.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply w-[1.25rem] h-[1.25rem] rounded}.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply bg-wp-blue}.pm-type-array [type=checkbox]:checked:focus,.pm-type-boolean [type=checkbox]:checked:focus{@apply bg-wp-blue shadow-black}.pm-type-array [type=checkbox]:checked:hover,.pm-type-boolean [type=checkbox]:checked:hover{@apply bg-wp-blue-hover}.pm-font-sizes .pm-label,.pm-font-families .pm-label{@apply col-span-full}.pm-font-sizes .pm-property,.pm-font-families .pm-property{@apply col-span-full}.pm-typography-font-sizes>div,.pm-typography-font-families>div{@apply bg-gray-100 px-5 rounded}.pm-typography-font-sizes>div>div .grid,.pm-typography-font-families>div>div .grid{@apply gap-2 py-4}.pm-duotone .pm-property,.pm-gradients .pm-property,.pm-palette .pm-property{@apply col-span-full}.pm-duotone .pm-label,.pm-gradients .pm-label,.pm-palette .pm-label{@apply col-span-full}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pm-json-nav li{order:10}.pm-json-nav li:nth-child(2){order:1}.pm-json-nav li:nth-child(6){order:2}.pm-json-nav li:nth-child(4){order:3}.pm-json-nav li:nth-child(5){order:4}.pm-nav button:disabled{opacity:.6}.pm-nav ul{background:#1e1e1e;list-style:none;margin:0;padding-left:0;display:flex;border-radius:3px;gap:3px}.pm-nav li{color:#fff;position:relative;text-decoration:none;transition-duration:.3s;margin:0;border-radius:3px}.pm-nav li button{color:#fff;padding:8px 16px;border-radius:3px}.pm-nav li:hover,.pm-nav li:focus-within{background:#404040;cursor:pointer}.pm-nav li:focus-within button{outline:none}.pm-nav ul li ul{background:#1e1e1e;visibility:hidden;opacity:0;min-width:300px;position:absolute;transition:all .5s ease;margin-top:0;left:0;display:none;padding:10px 0;font-weight:400;gap:0}.pm-nav ul li ul li:hover{background:none}.pm-nav ul li ul li ul{left:300px;top:-10px;background:#2f2f2f}.pm-nav ul li ul li button{width:100%;text-align:left;color:#c6c6c6;transition-duration:.3s;padding:11px 16px}.pm-nav ul li ul li button:hover{color:#fff}.pm-nav ul li:hover>ul,.pm-nav ul li:focus-within>ul,.pm-nav ul li ul:hover,.pm-nav ul li ul:focus{visibility:visible;opacity:1;display:block}.pm-nav ul li ul li{clear:both;width:100%}
     2.pattern-manager-theme-patterns{width:100%;border-radius:2px;background:#fff}@media(max-width: 1024px){.pattern-manager-theme-patterns{border-width:2rem;padding:2rem}}.pattern-manager-theme-patterns .patterns-container-inner{font-size:14px}.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{display:grid;grid-template-columns:300px 1fr;grid-gap:3rem}@media(max-width: 1200px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:220px 1fr}}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:1fr}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar{display:block}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search{margin-bottom:2.5rem}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search-count{margin-top:-24px;font-weight:600}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-categories{display:flex;flex-wrap:wrap;gap:5px}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:block;height:48px;margin-bottom:2px;text-align:left;width:100%}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:inline-flex;width:unset}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):hover,.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):focus-visible{background:#f5f5f5;transition:all .2s ease;color:var(--wp-admin-theme-color)}.pattern-manager-theme-patterns .patterns-container-inner .grid-empty{margin-left:auto;margin-right:auto;padding:2.5rem;width:auto;text-align:center;background:#fff;border-radius:.25rem}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid{width:100%;display:grid;grid-template-columns:repeat(3, minmax(300px, 1fr));grid-gap:2rem}@media(max-width: 1729px){.pattern-manager-theme-patterns .patterns-container-inner .inner-grid{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr))}}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item{position:relative;box-sizing:border-box;margin-bottom:50px;min-height:300px;border:solid 1px #ddd;border-radius:5px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item[role=button]{cursor:pointer}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item::before{content:"";display:block}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner{height:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview{display:flex;z-index:0;flex-grow:1;position:relative;height:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader{position:absolute;top:0;left:0;width:100%;height:300px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader::before{display:block;content:" ";border:3px solid rgba(0,0,0,0);border-top:3px solid #c7c7c7;border-radius:50%;width:30px;height:30px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px)}@-webkit-keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-outer{position:relative;width:100%;display:flex;align-items:center;border-radius:5px;min-height:300px;overflow:hidden}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-inner{overflow:hidden}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview iframe{-webkit-animation:.6s ease 0s normal forwards 1 fadein;animation:.6s ease 0s normal forwards 1 fadein}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions{position:absolute;bottom:20px;width:100%;margin-left:auto;margin-right:auto;padding:20px;opacity:0}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions a.item-action-button{border-right:1px solid #404040}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button{z-index:50;background:rgba(0,0,0,0);cursor:pointer;color:#c6c6c6;height:46px;justify-content:center;padding:15px 20px;transition:.1s ease}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button:hover{color:#fff}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-icon{fill:currentcolor;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);width:20px;height:20px;margin-right:4px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-button-text{display:inline-block;position:relative;font-size:15px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator{position:relative}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator::after{content:"";position:absolute;right:0;border-right:1px solid #404040;top:0;bottom:0}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions-inside{background:#1e1e1e;border-radius:6px;display:grid;grid-auto-columns:minmax(0, 1fr);grid-auto-flow:column}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover,.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within{border:1px solid #006ba1;border-radius:5px;transition:all .2s ease-in-out}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover .item-actions,.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within .item-actions{opacity:1;transition:all .2s ease-in-out}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-pattern-preview-heading{display:flex;justify-content:center;background:#fff;padding:1rem;position:absolute;bottom:-52px;width:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-no-patterns-found{font-weight:400}
  • pattern-manager/tags/0.1.7/wp-modules/app/js/build/index.js

    r2887710 r2904680  
    1 !function(){"use strict";var e,t,n={505:function(e,t,n){n.d(t,{ZP:function(){return C}});var r=n(196),a=n.n(r);function o(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function i(){return i=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},i.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}var s=n(864),u=n(679),l=n.n(u);var d=a().createContext(),p={},f="PENDING",m="REJECTED",g=function(e){return e};function y(e){var t=e.defaultResolveComponent,n=void 0===t?g:t,r=e.render,u=e.onLoad;function y(e,t){void 0===t&&(t={});var g=function(e){return"function"==typeof e?{requireAsync:e,resolve:function(){},chunkName:function(){}}:e}(e),y={};function h(e){return t.cacheKey?t.cacheKey(e):g.resolve?g.resolve(e):"static"}function v(e,r,a){var o=t.resolveComponent?t.resolveComponent(e,r):n(e);if(t.resolveComponent&&!(0,s.isValidElementType)(o))throw new Error("resolveComponent returned something that is not a React component!");return l()(a,o,{preload:!0}),o}var b,M,I=function(e){var t=h(e),n=y[t];return n&&n.status!==m||((n=g.requireAsync(e)).status=f,y[t]=n,n.then((function(){n.status="RESOLVED"}),(function(t){console.error("loadable-components: failed to asynchronously load component",{fileName:g.resolve(e),chunkName:g.chunkName(e),error:t?t.message:t}),n.status=m}))),n},N=function(e){var n,a;function s(n){var r;return(r=e.call(this,n)||this).state={result:null,error:null,loading:!0,cacheKey:h(n)},function(e,t){if(!e){var n=new Error("loadable: "+t);throw n.framesToPop=1,n.name="Invariant Violation",n}}(!n.__chunkExtractor||g.requireSync,"SSR requires `@loadable/babel-plugin`, please install it"),n.__chunkExtractor?(!1===t.ssr||(g.requireAsync(n).catch((function(){return null})),r.loadSync(),n.__chunkExtractor.addChunk(g.chunkName(n))),function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)):(!1!==t.ssr&&(g.isReady&&g.isReady(n)||g.chunkName&&p[g.chunkName(n)])&&r.loadSync(),r)}a=e,(n=s).prototype=Object.create(a.prototype),n.prototype.constructor=n,c(n,a),s.getDerivedStateFromProps=function(e,t){var n=h(e);return i({},t,{cacheKey:n,loading:t.loading||t.cacheKey!==n})};var l=s.prototype;return l.componentDidMount=function(){this.mounted=!0;var e=this.getCache();e&&e.status===m&&this.setCache(),this.state.loading&&this.loadAsync()},l.componentDidUpdate=function(e,t){t.cacheKey!==this.state.cacheKey&&this.loadAsync()},l.componentWillUnmount=function(){this.mounted=!1},l.safeSetState=function(e,t){this.mounted&&this.setState(e,t)},l.getCacheKey=function(){return h(this.props)},l.getCache=function(){return y[this.getCacheKey()]},l.setCache=function(e){void 0===e&&(e=void 0),y[this.getCacheKey()]=e},l.triggerOnLoad=function(){var e=this;u&&setTimeout((function(){u(e.state.result,e.props)}))},l.loadSync=function(){if(this.state.loading)try{var e=v(g.requireSync(this.props),this.props,C);this.state.result=e,this.state.loading=!1}catch(e){console.error("loadable-components: failed to synchronously load component, which expected to be available",{fileName:g.resolve(this.props),chunkName:g.chunkName(this.props),error:e?e.message:e}),this.state.error=e}},l.loadAsync=function(){var e=this,t=this.resolveAsync();return t.then((function(t){var n=v(t,e.props,C);e.safeSetState({result:n,loading:!1},(function(){return e.triggerOnLoad()}))})).catch((function(t){return e.safeSetState({error:t,loading:!1})})),t},l.resolveAsync=function(){var e=this.props,t=(e.__chunkExtractor,e.forwardedRef,o(e,["__chunkExtractor","forwardedRef"]));return I(t)},l.render=function(){var e=this.props,n=e.forwardedRef,a=e.fallback,c=(e.__chunkExtractor,o(e,["forwardedRef","fallback","__chunkExtractor"])),s=this.state,u=s.error,l=s.loading,d=s.result;if(t.suspense&&(this.getCache()||this.loadAsync()).status===f)throw this.loadAsync();if(u)throw u;var p=a||t.fallback||null;return l?p:r({fallback:p,result:d,options:t,props:i({},c,{ref:n})})},s}(a().Component),w=(M=function(e){return a().createElement(d.Consumer,null,(function(t){return a().createElement(b,Object.assign({__chunkExtractor:t},e))}))},(b=N).displayName&&(M.displayName=b.displayName+"WithChunkExtractor"),M),C=a().forwardRef((function(e,t){return a().createElement(w,Object.assign({forwardedRef:t},e))}));return C.displayName="Loadable",C.preload=function(e){C.load(e)},C.load=function(e){return I(e)},C}return{loadable:y,lazy:function(e,t){return y(e,i({},t,{suspense:!0}))}}}var h=y({defaultResolveComponent:function(e){return e.__esModule?e.default:e.default||e},render:function(e){var t=e.result,n=e.props;return a().createElement(t,n)}}),v=h.loadable,b=h.lazy,M=y({onLoad:function(e,t){e&&t.forwardedRef&&("function"==typeof t.forwardedRef?t.forwardedRef(e):t.forwardedRef.current=e)},render:function(e){var t=e.result,n=e.props;return n.children?n.children(t):null}}),I=M.loadable,N=M.lazy,w=v;w.lib=I,b.lib=N;var C=w},236:function(e,t,n){var r=n(307);t.Z=(0,r.createContext)(void 0)},70:function(e,t,n){n.d(t,{i:function(){return r}});const{patternManager:r}=window},878:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(307),a=n(236);function o(){const e=(0,r.useContext)(a.Z);if(!e)throw new Error("usePmContext must be inside a provider");return e}},679:function(e,t,n){var r=n(864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?i:c[e.$$typeof]||a}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=i;var u=Object.defineProperty,l=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=l(n);d&&(i=i.concat(d(n)));for(var c=s(t),g=s(n),y=0;y<i.length;++y){var h=i[y];if(!(o[h]||r&&r[h]||g&&g[h]||c&&c[h])){var v=p(n,h);try{u(t,h,v)}catch(e){}}}}return t}},921:function(e,t){var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,M=n?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case l:case d:case o:case c:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case g:case s:return e;default:return t}}case a:return t}}}function N(e){return I(e)===d}t.AsyncMode=l,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=y,t.Memo=g,t.Portal=a,t.Profiler=c,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return N(e)||I(e)===l},t.isConcurrentMode=N,t.isContextConsumer=function(e){return I(e)===u},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return I(e)===p},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===y},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===a},t.isProfiler=function(e){return I(e)===c},t.isStrictMode=function(e){return I(e)===i},t.isSuspense=function(e){return I(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===c||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===b||e.$$typeof===M||e.$$typeof===h)},t.typeOf=I},864:function(e,t,n){e.exports=n(921)},196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n},444:function(e){e.exports=window.wp.primitives}},r={};function a(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={exports:{}};return n[e](o,o.exports,a),o.exports}a.m=n,a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))},a.u=function(e){return e+".js"},a.miniCssF=function(e){},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="patternmanager-app:",a.l=function(n,r,o,i){if(e[n])e[n].push(r);else{var c,s;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+o){c=d;break}}c||(s=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,a.nc&&c.setAttribute("nonce",a.nc),c.setAttribute("data-webpack",t+o),c.src=n),e[n]=[r];var p=function(t,r){c.onerror=c.onload=null,clearTimeout(f);var a=e[n];if(delete e[n],c.parentNode&&c.parentNode.removeChild(c),a&&a.forEach((function(e){return e(r)})),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=p.bind(null,c.onerror),c.onload=p.bind(null,c.onload),s&&document.head.appendChild(c)}},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e}(),function(){var e={826:0};a.f.j=function(t,n){var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=o);var i=a.p+a.u(t),c=new Error;a.l(i,(function(n){if(a.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",c.name="ChunkLoadError",c.type=o,c.request=i,r[1](c)}}),"chunk-"+t,t)}};var t=function(t,n){var r,o,i=n[0],c=n[1],s=n[2],u=0;if(i.some((function(t){return 0!==e[t]}))){for(r in c)a.o(c,r)&&(a.m[r]=c[r]);s&&s(a)}for(t&&t(n);u<i.length;u++)o=i[u],a.o(e,o)&&e[o]&&e[o][0](),e[o]=0},n=self.webpackChunkpatternmanager_app=self.webpackChunkpatternmanager_app||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){var e=a(307),t=window.ReactDOM,n=a.n(t),r=a(70),o=a(236),i=a(736),c=a(609);function s(){return(0,e.createElement)("div",{className:"pattern-manager-header-container"},(0,e.createElement)("div",{className:"header-container-logo"},(0,e.createElement)("img",{alt:(0,i.__)("WP Engine logo","pattern-manager"),className:"logo-svg","aria-hidden":"true",src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0iV1BFLUxPR08tUy1EZWZhdWx0IiB3aWR0aD0iMTEyLjk5MiIgaGVpZ2h0PSIxNTEuNDc1IiB2aWV3Qm94PSItMC4wNjggMC4wMDYgMTA4LjEyNyAxMDguMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzBlY2FkNDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDAyODM4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0ibG9nb21hcmsiPgogICAgPHBhdGggaWQ9IlBhdGhfODIiIGRhdGEtbmFtZT0iUGF0aCA4MiIgY2xhc3M9ImNscy0xIiBkPSJNMjU5LjQsNDIzLjYwOWgzNC43Mjl2LTI2LjQybC04LjMwNy04LjMwOEgyNjcuNzA1bC04LjMsOC4zMDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIyLjcxOCAtMzE1LjUxMykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzgzIiBkYXRhLW5hbWU9IlBhdGggODMiIGNsYXNzPSJjbHMtMSIgZD0iTTM2NS4xODIsMjkxLjRsLTguMzA5LDguMzA5djE4LjExNWw4LjMwOSw4LjMwNkgzOTEuNlYyOTEuNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTEgLTI1NC43MTYpIi8+CiAgICA8cGF0aCBpZD0iUGF0aF84NCIgZGF0YS1uYW1lPSJQYXRoIDg0IiBjbGFzcz0iY2xzLTEiIGQ9Ik0yOTQuMTMxLDE5My45MkgyNTkuNHYyNi40MjRsOC4zMDYsOC4zMDZoMTguMTE1bDguMzA4LTguMzA2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyMi43MTggLTE5My45MikiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg1IiBkYXRhLW5hbWU9IlBhdGggODUiIGNsYXNzPSJjbHMtMSIgZD0iTTM5MS42LDQyMy42MDl2LTI2LjQyTDM4My4zLDM4OC44OEgzNTYuODc2djM0LjcyOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTExIC0zMTUuNTEzKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODYiIGRhdGEtbmFtZT0iUGF0aCA4NiIgY2xhc3M9ImNscy0xIiBkPSJNMTcwLjIyNiwxOTMuOTIybC04LjMwNiw4LjMwOVYyMjguNjVoMzQuNzI5VjE5My45MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxLjkyMSAtMTkzLjkyMSkiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg3IiBkYXRhLW5hbWU9IlBhdGggODciIGNsYXNzPSJjbHMtMSIgZD0iTTM1Ni44NzYsMTkzLjkydjI2LjQyNGw4LjMwOSw4LjMwNkgzOTEuNlYxOTMuOTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjgzLjUxMSAtMTkzLjkyKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODgiIGRhdGEtbmFtZT0iUGF0aCA4OCIgY2xhc3M9ImNscy0xIiBkPSJNMjk3LjI5MiwzMzQuMjc2YTQuOTc1LDQuOTc1LDAsMSwxLDQuOTc1LTQuOTc1LDQuOTc1LDQuOTc1LDAsMCwxLTQuOTc1LDQuOTc1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQzLjI0NSAtMjc1LjI1MykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg5IiBkYXRhLW5hbWU9IlBhdGggODkiIGNsYXNzPSJjbHMtMSIgZD0iTTE5Ni42NSwyOTEuNEgxNjEuOTIxdjM0LjczaDI2LjQyMWw4LjMwOC04LjMwNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0yNTQuNzE2KSIvPgogICAgPHBhdGggaWQ9IlBhdGhfOTAiIGRhdGEtbmFtZT0iUGF0aCA5MCIgY2xhc3M9ImNscy0xIiBkPSJNMTk2LjY1LDM5Ny4xODRsLTguMzA4LTguMzA4SDE2MS45MjF2MzQuNzNoMjYuNDIxbDguMzA4LTguM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0zMTUuNTExKSIvPgogIDwvZz4KPC9zdmc+"}),(0,e.createElement)("h1",{className:"logo-title"},(0,i.__)("Pattern Manager","pattern-manager"))),(0,e.createElement)("div",{className:"header-container-inner"},(0,e.createElement)(c.Button,{variant:"primary",href:`${r.i.siteUrl}/wp-admin/post-new.php?post_type=pm_pattern`},(0,i.__)("Create New Pattern","pattern-manager"))))}a(196);var u=a(878);function l(t){let{categories:n,currentCategory:r,setCurrentCategory:a}=t;return(0,e.createElement)("div",{className:"pattern-categories"},n.map((t=>{const n=["category",...r===t.name?["category-selected is-pressed"]:[]].join(" ");return(0,e.createElement)(c.Button,{type:"button",key:t.name,"aria-label":t.label,"aria-pressed":n.includes("category-selected"),className:n,onClick:()=>a((()=>t.name))},t.label)})))}var d=a(505);const p=(0,d.ZP)((async()=>a.e(896).then(a.bind(a,896)))),f=(0,d.ZP)((async()=>a.e(786).then(a.bind(a,786))));function m(t){let{themePatterns:n}=t;return function(t){const[,n]=(0,e.useState)();(0,e.useLayoutEffect)((()=>{function e(){n([window.innerWidth,window.innerHeight])}return n(t),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[...t])}([n]),(0,e.createElement)(e.Fragment,null,Object.entries(null!=n?n:{}).length?Object.entries(null!=n?n:{}).map((t=>{let[n,a]=t;return(0,e.createElement)("div",{key:n,className:"grid-item","aria-label":a.title},(0,e.createElement)("div",{className:"item-inner"},(0,e.createElement)("div",{className:"item-pattern-preview"},(0,e.createElement)(p,{key:n,url:r.i.siteUrl+"?pm_pattern_preview="+a.name,viewportWidth:a.viewportWidth||1280}))),(0,e.createElement)(f,{patternData:a}),(0,e.createElement)("div",{className:"item-pattern-preview-heading"},(0,e.createElement)("span",null,a.title)))})):(0,e.createElement)("div",{className:"grid-no-patterns-found"},(0,i.__)("No patterns found.","pattern-manager")))}function g(t){let{resultsLength:n,searchTerm:r}=t;return(0,e.createElement)("div",{className:"pattern-search-count"},(0,e.createElement)("span",null,(0,i.sprintf)(/* translators: %1$d: the number of patterns found, %2$s: the search term for patterns */
    2 (0,i._n)('%1$d pattern found for "%2$s"','%1$d patterns found for "%2$s"',n,"pattern-manager"),n,r)))}function y(e){return e.charAt(0).toUpperCase()+e.slice(1)}function h(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return y(e.replace(/([a-z])([A-Z1-9])/g,(e=>`${e[0]} ${e[1]}`)))}function v(){var t;const{patterns:n}=(0,u.Z)(),[r,a]=(0,e.useState)("all-patterns"),[o,s]=(0,e.useState)(""),d=(p=n.data,Object.entries(p).reduce(((e,t)=>{let[n,{categories:r}]=t;return{...e,[n]:{...p[n],categories:[...null!=r&&r.length?r:["uncategorized"]]}}}),{}));var p;const f=function(e,t,n){return function(e,t){return t?Object.entries(e).reduce(((e,n)=>{let[r,a]=n;return["title","keywords","description"].some((e=>{var n;return null===(n=a[e])||void 0===n?void 0:n.toString().toLowerCase().includes(t.toString().toLowerCase())}))?{...e,[r]:a}:e}),{}):e}(function(e,t){return t?Object.entries(e).reduce(((e,n)=>{var r;let[a,o]=n;return null!==(r=o.categories)&&void 0!==r&&r.includes(t)||"all-patterns"===t?{...e,[a]:o}:e}),{}):e}(e,t?"all-patterns":n),t.trim())}(d,o,r),y=function(e,t){return[{label:(0,i.__)("All Patterns","pattern-manager"),name:"all-patterns"},...(n=[...Object.entries(e).reduce(((e,t)=>{let[,{categories:n}]=t;return[...e,...n?null==n?void 0:n.filter((t=>!e.includes(t))):[]]}),[]).map((e=>{var n;return{label:(null===(n=t.find((t=>{let{name:n}=t;return n===e})))||void 0===n?void 0:n.label)||h(e.replace(/[-_]/g," ")),name:e}}))],"name",n.sort(((e,t)=>e.name>t.name?1:-1)),n)];var n}(d,n.patternCategories);return(0,e.createElement)("div",{className:"patternmanager-theme-patterns"},(0,e.createElement)("div",{className:"patterns-container-inner"},Object.entries(null!==(t=n.data)&&void 0!==t?t:{}).length?(0,e.createElement)("div",{className:"pattern-columns"},(0,e.createElement)("div",{className:"pattern-inner-sidebar",role:"region","aria-label":"Sort patterns by category"},(0,e.createElement)(c.SearchControl,{className:"pattern-search",label:(0,i.__)("Search Patterns","pattern-manager"),value:o,onChange:e=>{s(e)}}),o?(0,e.createElement)(g,{resultsLength:Object.keys(f).length,searchTerm:o}):(0,e.createElement)(l,{categories:y,currentCategory:r,setCurrentCategory:a})),(0,e.createElement)("div",{className:"inner-grid",role:"region","aria-label":"Block Patterns"},(0,e.createElement)(m,{themePatterns:f}))):(0,e.createElement)("div",{className:"grid-empty"},(0,e.createInterpolateElement)((0,i.__)("No patterns added yet. Click the <span></span> button to start creating and adding patterns.","pattern-manager"),{span:(0,e.createElement)("strong",null,(0,i.__)("Create New Pattern","pattern-manager"))}))))}n().render((0,e.createElement)((function(){const t=function(t){const[n,a]=(0,e.useState)(t);return{data:n,deletePattern:function(e){return a(function(e,t){const{[e]:{},...n}=t;return n}(e,n)),fetch(r.i.apiEndpoints.deletePatternEndpoint,{method:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json","X-WP-Nonce":r.i.apiNonce},body:JSON.stringify({patternName:e})})},patternCategories:r.i.patternCategories}}(r.i.patterns),n={apiEndpoints:r.i.apiEndpoints,patternCategories:r.i.patternCategories,patterns:t,siteUrl:r.i.siteUrl};return(0,e.createElement)(o.Z.Provider,{value:n},(0,e.createElement)(s,null),(0,e.createElement)(v,null))}),null),document.getElementById("pattern-manager-app"))}()}();
     1!function(){"use strict";var e,t,n={505:function(e,t,n){n.d(t,{ZP:function(){return C}});var r=n(196),o=n.n(r);function a(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function i(){return i=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},i.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}var s=n(864),l=n(679),u=n.n(l);var d=o().createContext(),p={},f="PENDING",m="REJECTED",g=function(e){return e};function y(e){var t=e.defaultResolveComponent,n=void 0===t?g:t,r=e.render,l=e.onLoad;function y(e,t){void 0===t&&(t={});var g=function(e){return"function"==typeof e?{requireAsync:e,resolve:function(){},chunkName:function(){}}:e}(e),y={};function h(e){return t.cacheKey?t.cacheKey(e):g.resolve?g.resolve(e):"static"}function b(e,r,o){var a=t.resolveComponent?t.resolveComponent(e,r):n(e);if(t.resolveComponent&&!(0,s.isValidElementType)(a))throw new Error("resolveComponent returned something that is not a React component!");return u()(o,a,{preload:!0}),a}var v,M,I=function(e){var t=h(e),n=y[t];return n&&n.status!==m||((n=g.requireAsync(e)).status=f,y[t]=n,n.then((function(){n.status="RESOLVED"}),(function(t){console.error("loadable-components: failed to asynchronously load component",{fileName:g.resolve(e),chunkName:g.chunkName(e),error:t?t.message:t}),n.status=m}))),n},N=function(e){var n,o;function s(n){var r;return(r=e.call(this,n)||this).state={result:null,error:null,loading:!0,cacheKey:h(n)},function(e,t){if(!e){var n=new Error("loadable: "+t);throw n.framesToPop=1,n.name="Invariant Violation",n}}(!n.__chunkExtractor||g.requireSync,"SSR requires `@loadable/babel-plugin`, please install it"),n.__chunkExtractor?(!1===t.ssr||(g.requireAsync(n).catch((function(){return null})),r.loadSync(),n.__chunkExtractor.addChunk(g.chunkName(n))),function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)):(!1!==t.ssr&&(g.isReady&&g.isReady(n)||g.chunkName&&p[g.chunkName(n)])&&r.loadSync(),r)}o=e,(n=s).prototype=Object.create(o.prototype),n.prototype.constructor=n,c(n,o),s.getDerivedStateFromProps=function(e,t){var n=h(e);return i({},t,{cacheKey:n,loading:t.loading||t.cacheKey!==n})};var u=s.prototype;return u.componentDidMount=function(){this.mounted=!0;var e=this.getCache();e&&e.status===m&&this.setCache(),this.state.loading&&this.loadAsync()},u.componentDidUpdate=function(e,t){t.cacheKey!==this.state.cacheKey&&this.loadAsync()},u.componentWillUnmount=function(){this.mounted=!1},u.safeSetState=function(e,t){this.mounted&&this.setState(e,t)},u.getCacheKey=function(){return h(this.props)},u.getCache=function(){return y[this.getCacheKey()]},u.setCache=function(e){void 0===e&&(e=void 0),y[this.getCacheKey()]=e},u.triggerOnLoad=function(){var e=this;l&&setTimeout((function(){l(e.state.result,e.props)}))},u.loadSync=function(){if(this.state.loading)try{var e=b(g.requireSync(this.props),this.props,C);this.state.result=e,this.state.loading=!1}catch(e){console.error("loadable-components: failed to synchronously load component, which expected to be available",{fileName:g.resolve(this.props),chunkName:g.chunkName(this.props),error:e?e.message:e}),this.state.error=e}},u.loadAsync=function(){var e=this,t=this.resolveAsync();return t.then((function(t){var n=b(t,e.props,C);e.safeSetState({result:n,loading:!1},(function(){return e.triggerOnLoad()}))})).catch((function(t){return e.safeSetState({error:t,loading:!1})})),t},u.resolveAsync=function(){var e=this.props,t=(e.__chunkExtractor,e.forwardedRef,a(e,["__chunkExtractor","forwardedRef"]));return I(t)},u.render=function(){var e=this.props,n=e.forwardedRef,o=e.fallback,c=(e.__chunkExtractor,a(e,["forwardedRef","fallback","__chunkExtractor"])),s=this.state,l=s.error,u=s.loading,d=s.result;if(t.suspense&&(this.getCache()||this.loadAsync()).status===f)throw this.loadAsync();if(l)throw l;var p=o||t.fallback||null;return u?p:r({fallback:p,result:d,options:t,props:i({},c,{ref:n})})},s}(o().Component),w=(M=function(e){return o().createElement(d.Consumer,null,(function(t){return o().createElement(v,Object.assign({__chunkExtractor:t},e))}))},(v=N).displayName&&(M.displayName=v.displayName+"WithChunkExtractor"),M),C=o().forwardRef((function(e,t){return o().createElement(w,Object.assign({forwardedRef:t},e))}));return C.displayName="Loadable",C.preload=function(e){C.load(e)},C.load=function(e){return I(e)},C}return{loadable:y,lazy:function(e,t){return y(e,i({},t,{suspense:!0}))}}}var h=y({defaultResolveComponent:function(e){return e.__esModule?e.default:e.default||e},render:function(e){var t=e.result,n=e.props;return o().createElement(t,n)}}),b=h.loadable,v=h.lazy,M=y({onLoad:function(e,t){e&&t.forwardedRef&&("function"==typeof t.forwardedRef?t.forwardedRef(e):t.forwardedRef.current=e)},render:function(e){var t=e.result,n=e.props;return n.children?n.children(t):null}}),I=M.loadable,N=M.lazy,w=b;w.lib=I,v.lib=N;var C=w},236:function(e,t,n){var r=n(307);t.Z=(0,r.createContext)(void 0)},70:function(e,t,n){n.d(t,{i:function(){return r}});const{patternManager:r}=window},679:function(e,t,n){var r=n(864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?i:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var c=s(t),g=s(n),y=0;y<i.length;++y){var h=i[y];if(!(a[h]||r&&r[h]||g&&g[h]||c&&c[h])){var b=p(n,h);try{l(t,h,b)}catch(e){}}}}return t}},921:function(e,t){var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,M=n?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case c:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case y:case g:case s:return e;default:return t}}case o:return t}}}function N(e){return I(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=g,t.Portal=o,t.Profiler=c,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return N(e)||I(e)===u},t.isConcurrentMode=N,t.isContextConsumer=function(e){return I(e)===l},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return I(e)===p},t.isFragment=function(e){return I(e)===a},t.isLazy=function(e){return I(e)===y},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===o},t.isProfiler=function(e){return I(e)===c},t.isStrictMode=function(e){return I(e)===i},t.isSuspense=function(e){return I(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===c||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===s||e.$$typeof===l||e.$$typeof===p||e.$$typeof===b||e.$$typeof===v||e.$$typeof===M||e.$$typeof===h)},t.typeOf=I},864:function(e,t,n){e.exports=n(921)},196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n},444:function(e){e.exports=window.wp.primitives}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,o),a.exports}o.m=n,o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce((function(t,n){return o.f[n](e,t),t}),[]))},o.u=function(e){return e+".js"},o.miniCssF=function(e){},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="patternmanager-app:",o.l=function(n,r,a,i){if(e[n])e[n].push(r);else{var c,s;if(void 0!==a)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+a){c=d;break}}c||(s=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,o.nc&&c.setAttribute("nonce",o.nc),c.setAttribute("data-webpack",t+a),c.src=n),e[n]=[r];var p=function(t,r){c.onerror=c.onload=null,clearTimeout(f);var o=e[n];if(delete e[n],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((function(e){return e(r)})),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=p.bind(null,c.onerror),c.onload=p.bind(null,c.onload),s&&document.head.appendChild(c)}},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e}(),function(){var e={826:0};o.f.j=function(t,n){var r=o.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=a);var i=o.p+o.u(t),c=new Error;o.l(i,(function(n){if(o.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,r[1](c)}}),"chunk-"+t,t)}};var t=function(t,n){var r,a,i=n[0],c=n[1],s=n[2],l=0;if(i.some((function(t){return 0!==e[t]}))){for(r in c)o.o(c,r)&&(o.m[r]=c[r]);s&&s(o)}for(t&&t(n);l<i.length;l++)a=i[l],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},n=self.webpackChunkpatternmanager_app=self.webpackChunkpatternmanager_app||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){var e=o(307),t=window.ReactDOM,n=o.n(t),r=o(505),a=o(70),i=o(236),c=o(736),s=o(609);function l(){return(0,e.createElement)("div",{className:"pattern-manager-header-container"},(0,e.createElement)("div",{className:"header-container-logo"},(0,e.createElement)("img",{alt:(0,c.__)("WP Engine logo","pattern-manager"),className:"logo-svg","aria-hidden":"true",src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0iV1BFLUxPR08tUy1EZWZhdWx0IiB3aWR0aD0iMTEyLjk5MiIgaGVpZ2h0PSIxNTEuNDc1IiB2aWV3Qm94PSItMC4wNjggMC4wMDYgMTA4LjEyNyAxMDguMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzBlY2FkNDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDAyODM4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0ibG9nb21hcmsiPgogICAgPHBhdGggaWQ9IlBhdGhfODIiIGRhdGEtbmFtZT0iUGF0aCA4MiIgY2xhc3M9ImNscy0xIiBkPSJNMjU5LjQsNDIzLjYwOWgzNC43Mjl2LTI2LjQybC04LjMwNy04LjMwOEgyNjcuNzA1bC04LjMsOC4zMDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIyLjcxOCAtMzE1LjUxMykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzgzIiBkYXRhLW5hbWU9IlBhdGggODMiIGNsYXNzPSJjbHMtMSIgZD0iTTM2NS4xODIsMjkxLjRsLTguMzA5LDguMzA5djE4LjExNWw4LjMwOSw4LjMwNkgzOTEuNlYyOTEuNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTEgLTI1NC43MTYpIi8+CiAgICA8cGF0aCBpZD0iUGF0aF84NCIgZGF0YS1uYW1lPSJQYXRoIDg0IiBjbGFzcz0iY2xzLTEiIGQ9Ik0yOTQuMTMxLDE5My45MkgyNTkuNHYyNi40MjRsOC4zMDYsOC4zMDZoMTguMTE1bDguMzA4LTguMzA2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyMi43MTggLTE5My45MikiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg1IiBkYXRhLW5hbWU9IlBhdGggODUiIGNsYXNzPSJjbHMtMSIgZD0iTTM5MS42LDQyMy42MDl2LTI2LjQyTDM4My4zLDM4OC44OEgzNTYuODc2djM0LjcyOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTExIC0zMTUuNTEzKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODYiIGRhdGEtbmFtZT0iUGF0aCA4NiIgY2xhc3M9ImNscy0xIiBkPSJNMTcwLjIyNiwxOTMuOTIybC04LjMwNiw4LjMwOVYyMjguNjVoMzQuNzI5VjE5My45MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxLjkyMSAtMTkzLjkyMSkiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg3IiBkYXRhLW5hbWU9IlBhdGggODciIGNsYXNzPSJjbHMtMSIgZD0iTTM1Ni44NzYsMTkzLjkydjI2LjQyNGw4LjMwOSw4LjMwNkgzOTEuNlYxOTMuOTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjgzLjUxMSAtMTkzLjkyKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODgiIGRhdGEtbmFtZT0iUGF0aCA4OCIgY2xhc3M9ImNscy0xIiBkPSJNMjk3LjI5MiwzMzQuMjc2YTQuOTc1LDQuOTc1LDAsMSwxLDQuOTc1LTQuOTc1LDQuOTc1LDQuOTc1LDAsMCwxLTQuOTc1LDQuOTc1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQzLjI0NSAtMjc1LjI1MykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg5IiBkYXRhLW5hbWU9IlBhdGggODkiIGNsYXNzPSJjbHMtMSIgZD0iTTE5Ni42NSwyOTEuNEgxNjEuOTIxdjM0LjczaDI2LjQyMWw4LjMwOC04LjMwNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0yNTQuNzE2KSIvPgogICAgPHBhdGggaWQ9IlBhdGhfOTAiIGRhdGEtbmFtZT0iUGF0aCA5MCIgY2xhc3M9ImNscy0xIiBkPSJNMTk2LjY1LDM5Ny4xODRsLTguMzA4LTguMzA4SDE2MS45MjF2MzQuNzNoMjYuNDIxbDguMzA4LTguM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0zMTUuNTExKSIvPgogIDwvZz4KPC9zdmc+"}),(0,e.createElement)("h1",{className:"logo-title"},(0,c.__)("Pattern Manager","pattern-manager"))),(0,e.createElement)("div",{className:"header-container-inner"},(0,e.createElement)(s.Button,{variant:"primary",href:`${a.i.siteUrl}/wp-admin/post-new.php?post_type=pm_pattern`},(0,c.__)("Create New Pattern","pattern-manager"))))}function u(t){let{categories:n,currentCategory:r,setCurrentCategory:o}=t;return(0,e.createElement)("div",{className:"pattern-categories"},n.map((t=>{const n=["category",...r===t.name?["category-selected is-pressed"]:[]].join(" ");return(0,e.createElement)(s.Button,{type:"button",key:t.name,"aria-label":t.label,"aria-pressed":n.includes("category-selected"),className:n,onClick:()=>o((()=>t.name))},t.label)})))}o(196);const d=(0,r.ZP)((async()=>o.e(896).then(o.bind(o,896))));function p(t){let{onSelectPattern:n,PatternActions:r,patterns:o,siteUrl:a}=t;return function(t){const[,n]=(0,e.useState)();(0,e.useLayoutEffect)((()=>{function e(){n([window.innerWidth,window.innerHeight])}return n(t),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[...t])}([o]),(0,e.createElement)(e.Fragment,null,Object.entries(null!=o?o:{}).length?Object.entries(null!=o?o:{}).map((t=>{let[o,i]=t;return(0,e.createElement)("div",{role:n?"button":void 0,key:o,onClick:()=>null==n?void 0:n(o),onKeyDown:()=>null==n?void 0:n(o),className:"grid-item","aria-label":i.title},(0,e.createElement)("div",{className:"item-inner"},(0,e.createElement)("div",{className:"item-pattern-preview"},(0,e.createElement)(d,{key:o,url:a+"?pm_pattern_preview="+i.name,viewportWidth:i.viewportWidth||1280}))),r?(0,e.createElement)(r,{patternData:i}):null,(0,e.createElement)("div",{className:"item-pattern-preview-heading"},(0,e.createElement)("span",null,i.title)))})):(0,e.createElement)("div",{className:"grid-no-patterns-found"},(0,c.__)("No patterns found.","pattern-manager")))}function f(t){let{resultsLength:n,searchTerm:r}=t;return(0,e.createElement)("div",{className:"pattern-search-count"},(0,e.createElement)("span",null,(0,c.sprintf)(/* translators: %1$d: the number of patterns found, %2$s: the search term for patterns */
     2(0,c._n)('%1$d pattern found for "%2$s"','%1$d patterns found for "%2$s"',n,"pattern-manager"),n,r)))}function m(e){return e.charAt(0).toUpperCase()+e.slice(1)}function g(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return m(e.replace(/([a-z])([A-Z1-9])/g,(e=>`${e[0]} ${e[1]}`)))}function y(t){let{onSelectPattern:n,PatternActions:r,patternCategories:o,patterns:a,siteUrl:i}=t;const[l,d]=(0,e.useState)("all-patterns"),[m,y]=(0,e.useState)(""),h=(b=a,Object.entries(b).reduce(((e,t)=>{let[n,{categories:r}]=t;return{...e,[n]:{...b[n],categories:[...null!=r&&r.length?r:["uncategorized"]]}}}),{}));var b;const v=function(e,t,n){return function(e,t){return t?Object.entries(e).reduce(((e,n)=>{let[r,o]=n;return["title","keywords","description"].some((e=>{var n;return null===(n=o[e])||void 0===n?void 0:n.toString().toLowerCase().includes(t.toString().toLowerCase())}))?{...e,[r]:o}:e}),{}):e}(function(e,t){return t?Object.entries(e).reduce(((e,n)=>{var r;let[o,a]=n;return null!==(r=a.categories)&&void 0!==r&&r.includes(t)||"all-patterns"===t?{...e,[o]:a}:e}),{}):e}(e,t?"all-patterns":n),t.trim())}(h,m,l),M=function(e,t){return[{label:(0,c.__)("All Patterns","pattern-manager"),name:"all-patterns"},...(n=[...Object.entries(e).reduce(((e,t)=>{let[,{categories:n}]=t;return[...e,...n?null==n?void 0:n.filter((t=>!e.includes(t))):[]]}),[]).map((e=>{var n;return{label:(null===(n=t.find((t=>{let{name:n}=t;return n===e})))||void 0===n?void 0:n.label)||g(e.replace(/[-_]/g," ")),name:e}}))],"name",n.sort(((e,t)=>e.name>t.name?1:-1)),n)];var n}(h,o);return(0,e.createElement)("div",{className:"pattern-manager-theme-patterns"},(0,e.createElement)("div",{className:"patterns-container-inner"},Object.entries(null!=a?a:{}).length?(0,e.createElement)("div",{className:"pattern-columns"},(0,e.createElement)("div",{className:"pattern-inner-sidebar",role:"region","aria-label":"Sort patterns by category"},(0,e.createElement)(s.SearchControl,{className:"pattern-search",label:(0,c.__)("Search Patterns","pattern-manager"),value:m,onChange:e=>{y(e)}}),m?(0,e.createElement)(f,{resultsLength:Object.keys(v).length,searchTerm:m}):(0,e.createElement)(u,{categories:M,currentCategory:l,setCurrentCategory:d})),(0,e.createElement)("div",{className:"inner-grid",role:"region","aria-label":"Block Patterns"},(0,e.createElement)(p,{onSelectPattern:n,PatternActions:r,patterns:v,siteUrl:i}))):(0,e.createElement)("div",{className:"grid-empty"},(0,e.createInterpolateElement)((0,c.__)("No patterns added yet. Click the <span></span> button to start creating and adding patterns.","pattern-manager"),{span:(0,e.createElement)("strong",null,(0,c.__)("Create New Pattern","pattern-manager"))}))))}const h=(0,r.ZP)((async()=>o.e(467).then(o.bind(o,467))));n().render((0,e.createElement)((function(){const t=function(t){const[n,r]=(0,e.useState)(t);return{data:n,deletePattern:function(e){return r(function(e,t){const{[e]:{},...n}=t;return n}(e,n)),fetch(a.i.apiEndpoints.deletePatternEndpoint,{method:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json","X-WP-Nonce":a.i.apiNonce},body:JSON.stringify({patternName:e})})}}}(a.i.patterns),n={patterns:t};return(0,e.createElement)(i.Z.Provider,{value:n},(0,e.createElement)(l,null),(0,e.createElement)(y,{PatternActions:h,patternCategories:a.i.patternCategories,patterns:t.data,siteUrl:a.i.siteUrl}))}),null),document.getElementById("pattern-manager-app"))}()}();
  • pattern-manager/tags/0.1.7/wp-modules/editor/editor.php

    r2887710 r2904680  
    1212namespace PatternManager\Editor;
    1313
     14use WP_Block_Pattern_Categories_Registry;
    1415use function PatternManager\PatternDataHandlers\delete_patterns_not_present;
    1516use function PatternManager\PatternDataHandlers\get_pattern_by_name;
     
    2324require_once trailingslashit( __DIR__ ) . 'utils.php';
    2425require_once trailingslashit( __DIR__ ) . 'model.php';
     26require_once trailingslashit( __DIR__ ) . 'block.php';
    2527
    2628/**
     
    264266        'patternManager',
    265267        [
    266             'activeTheme'  => basename( get_stylesheet_directory() ),
    267             'apiEndpoints' => array(
     268            'activeTheme'       => basename( get_stylesheet_directory() ),
     269            'apiEndpoints'      => array(
    268270                'getPatternNamesEndpoint' => get_rest_url( false, 'pattern-manager/v1/get-pattern-names/' ),
    269271            ),
    270             'apiNonce'     => wp_create_nonce( 'wp_rest' ),
    271             'patternNames' => \PatternManager\PatternDataHandlers\get_pattern_names(),
    272             'siteUrl'      => get_bloginfo( 'url' ),
     272            'apiNonce'          => wp_create_nonce( 'wp_rest' ),
     273            'patternCategories' => WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered(),
     274            'patternNames'      => \PatternManager\PatternDataHandlers\get_pattern_names(),
     275            'patterns'          => \PatternManager\PatternDataHandlers\get_theme_patterns_with_editor_links(),
     276            'siteUrl'           => get_bloginfo( 'url' ),
    273277        ]
    274278    );
     
    282286
    283287/**
    284  * If we are on the pattern-manager app page, register the patterns with WP.
    285  *
    286  * @return void
    287  */
    288 function register_block_patterns() {
    289     $current_screen = get_current_screen();
    290 
    291     if ( get_pattern_post_type() !== $current_screen->post_type ) {
    292         return;
    293     }
    294 
    295     $patterns = \PatternManager\PatternDataHandlers\get_theme_patterns();
    296 
    297     foreach ( $patterns as $pattern ) {
    298         if ( isset( $pattern['categories'] ) ) {
    299             foreach ( $pattern['categories'] as $category ) {
    300                 register_block_pattern_category( $category, array( 'label' => ucwords( str_replace( '-', ' ', $category ) ) ) );
    301             }
    302         }
    303         register_block_pattern(
    304             $pattern['name'],
    305             $pattern,
    306         );
    307     }
    308 }
    309 add_action( 'current_screen', __NAMESPACE__ . '\register_block_patterns', 9 );
    310 
    311 /**
    312288 * Enables the Core Comments block to render by adding a 'postId'.
    313289 *
  • pattern-manager/tags/0.1.7/wp-modules/editor/js/build/index.asset.php

    r2887710 r2904680  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '00bea5de8b08e75c8d11');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '08ab51970bd71abceb95');
  • pattern-manager/tags/0.1.7/wp-modules/editor/js/build/index.css

    r2887710 r2904680  
    1 .edit-post-post-status,.edit-post-visual-editor__post-title-wrapper,.patternmanager-template-details~*{display:none!important}button.components-button.editor-post-save-draft.is-tertiary,button.components-button.editor-post-switch-to-draft.is-tertiary{display:none}.patternmanager-inserter-toggle,.patternmanager-post-type-modal-toggle{margin-bottom:-12px;margin-top:16px}.patternmanager-inserter-toggle label.components-toggle-control__label,.patternmanager-post-type-modal-toggle label.components-toggle-control__label{height:20px}#patternmanager-pattern-post-name-input-component{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;height:50px}@media only screen and (min-width:781.25px){#patternmanager-pattern-post-name-input-component{height:40px}}#patternmanager-pattern-post-name-input-component:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.components-panel__row-patternmanager-pattern-name-error{min-height:auto}.components-panel__row-patternmanager-pattern-name-error-inner{color:red;font-weight:600;margin-bottom:0;margin-top:0}.patternmanager-pattern-sidebar-tooltip{margin-bottom:15px;margin-top:5px}.patternmanager-pattern-sidebar-tooltip #tooltip-icon-helper-text{cursor:default;padding-left:8px}.patternmanager-pattern-sidebar-reverse-tooltip #tooltip-icon-helper-text{cursor:pointer;padding-right:8px}#patternmanager-pattern-editor-description-textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}#patternmanager-pattern-editor-description-textarea:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}
     1.edit-post-post-status,.edit-post-visual-editor__post-title-wrapper,.patternmanager-template-details~*{display:none!important}button.components-button.editor-post-save-draft.is-tertiary,button.components-button.editor-post-switch-to-draft.is-tertiary{display:none}.patternmanager-inserter-toggle,.patternmanager-post-type-modal-toggle{margin-bottom:-12px;margin-top:16px}.patternmanager-inserter-toggle label.components-toggle-control__label,.patternmanager-post-type-modal-toggle label.components-toggle-control__label{height:20px}#patternmanager-pattern-post-name-input-component{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;height:50px}@media only screen and (min-width:781.25px){#patternmanager-pattern-post-name-input-component{height:40px}}#patternmanager-pattern-post-name-input-component:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.components-panel__row-patternmanager-pattern-name-error{min-height:auto}.components-panel__row-patternmanager-pattern-name-error-inner{color:red;font-weight:600;margin-bottom:0;margin-top:0}.patternmanager-pattern-sidebar-tooltip{margin-bottom:15px;margin-top:5px}.patternmanager-pattern-sidebar-tooltip #tooltip-icon-helper-text{cursor:default;padding-left:8px}.patternmanager-pattern-sidebar-reverse-tooltip #tooltip-icon-helper-text{cursor:pointer;padding-right:8px}#patternmanager-pattern-editor-description-textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}#patternmanager-pattern-editor-description-textarea:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.pm-pattern-container>*{max-width:none}.pm-pattern-container>.alignwide{margin-left:auto!important;margin-right:auto!important;max-width:var(--wp--style--global--wide-size,1280px)}.pm-pattern-container>:where(:not(.alignwide):not(.alignleft):not(.alignright):not(.alignfull)){margin-left:auto!important;margin-right:auto!important;max-width:var(--wp--style--global--content-size,640px)}.pm-pattern-block-modal{min-width:80%}
  • pattern-manager/tags/0.1.7/wp-modules/editor/model.php

    r2887710 r2904680  
    5656
    5757    $pattern = get_pattern_by_name( $post->post_name );
    58 
    5958    update_pattern(
    6059        array_merge(
     
    7069    );
    7170
    72     // Prevent an infinite loop.
    73     remove_action( 'rest_after_insert_' . get_pattern_post_type(), __NAMESPACE__ . '\save_pattern_to_file' );
    74 
    7571    // Removes the post content, as it should be saved in the pattern .php file.
    7672    wp_update_post(
     
    8177    );
    8278
    83     add_action( 'rest_after_insert_' . get_pattern_post_type(), __NAMESPACE__ . '\save_pattern_to_file' );
    84 
    8579    tree_shake_theme_images( get_wp_filesystem_api(), 'copy_dir' );
    8680}
     
    129123
    130124    return update_pattern(
    131         $pattern
    132             ? array_merge(
    133                 $pattern,
    134                 [
    135                     $meta_key => $meta_value,
    136                 ]
    137             )
    138             : array_merge(
    139                 get_pattern_defaults(),
    140                 [
    141                     'name'  => $pattern_name,
    142                     'title' => $post->post_title,
    143                 ],
    144                 [ $meta_key => $meta_value ]
    145             )
     125        array_merge(
     126            get_pattern_defaults(),
     127            $pattern ? $pattern : [],
     128            [
     129                'name'  => $pattern_name,
     130                'title' => $post->post_title,
     131            ],
     132            [ $meta_key => $meta_value ]
     133        )
    146134    );
    147135}
     
    159147function get_metadata_from_pattern_file( $override, $post_id, $meta_key, $is_single ) {
    160148    $post = get_post( $post_id );
    161     if ( ! $post ) {
    162         return $override;
    163     }
    164 
    165     if ( get_pattern_post_type() !== $post->post_type ) {
     149    if ( ! $post || get_pattern_post_type() !== $post->post_type ) {
    166150        return $override;
    167151    }
    168152
    169153    $pattern = get_pattern_by_name( $post->post_name );
    170     if ( ! $pattern ) {
    171         return $override;
    172     }
    173 
    174154    if ( isset( $pattern[ $meta_key ] ) ) {
    175155        return $is_single ? $pattern[ $meta_key ] : [ $pattern[ $meta_key ] ];
     
    192172    }
    193173
     174    if ( 'duplicate' === filter_input( INPUT_GET, 'action' ) ) {
     175        duplicate_pattern( filter_input( INPUT_GET, 'name' ) );
     176    }
     177
    194178    if ( 'edit-pattern' === filter_input( INPUT_GET, 'action' ) ) {
    195         $new_post = wp_insert_post(
    196             [
    197                 'post_type'   => get_pattern_post_type(),
    198                 'post_name'   => sanitize_text_field( filter_input( INPUT_GET, 'name' ) ),
    199                 'post_status' => 'publish',
    200             ]
    201         );
    202 
    203         wp_safe_redirect(
    204             get_edit_post_link( $new_post, 'direct_link' )
    205         );
    206     }
    207 
    208     if ( 'duplicate' === filter_input( INPUT_GET, 'action' ) ) {
    209         $pattern_to_duplicate  = get_pattern_by_name( sanitize_text_field( filter_input( INPUT_GET, 'name' ) ) );
    210         $duplicate_pattern_ids = get_duplicate_pattern_ids( $pattern_to_duplicate['name'], get_theme_patterns() );
    211         if ( ! $duplicate_pattern_ids ) {
    212             return;
    213         }
    214 
    215         $new_pattern = array_merge(
    216             $pattern_to_duplicate,
    217             $duplicate_pattern_ids
    218         );
    219 
    220         update_pattern( $new_pattern );
    221 
    222         $new_post = wp_insert_post(
    223             [
    224                 'post_type'   => get_pattern_post_type(),
    225                 'post_name'   => $new_pattern['name'],
    226                 'post_status' => 'publish',
    227             ]
    228         );
    229 
    230         wp_safe_redirect(
    231             get_edit_post_link( $new_post, 'direct_link' )
    232         );
     179        edit_pattern( filter_input( INPUT_GET, 'name' ) );
    233180    }
    234181}
  • pattern-manager/tags/0.1.7/wp-modules/editor/utils.php

    r2887710 r2904680  
    1212
    1313use WP_Query;
     14use function PatternManager\PatternDataHandlers\get_pattern_by_name;
     15use function PatternManager\PatternDataHandlers\get_theme_patterns;
     16use function PatternManager\PatternDataHandlers\update_pattern;
    1417
    1518/**
     
    116119    ) )->posts[0] ?? null;
    117120}
     121
     122/**
     123 * Duplicates a pattern.
     124 *
     125 * @param string $pattern_name The pattern name to duplicate.
     126 */
     127function duplicate_pattern( string $pattern_name ) {
     128    $pattern_to_duplicate  = get_pattern_by_name( sanitize_text_field( $pattern_name ) );
     129    $duplicate_pattern_ids = get_duplicate_pattern_ids( $pattern_to_duplicate['name'], get_theme_patterns() );
     130    if ( ! $duplicate_pattern_ids ) {
     131        return;
     132    }
     133
     134    $new_pattern = array_merge(
     135        $pattern_to_duplicate,
     136        $duplicate_pattern_ids
     137    );
     138
     139    update_pattern( $new_pattern );
     140
     141    wp_safe_redirect(
     142        get_edit_post_link(
     143            wp_insert_post(
     144                [
     145                    'post_type'   => get_pattern_post_type(),
     146                    'post_name'   => $new_pattern['name'],
     147                    'post_status' => 'publish',
     148                ]
     149            ),
     150            'direct_link'
     151        )
     152    );
     153}
     154
     155/**
     156 * Goes to the editor for a pattern.
     157 *
     158 * @param string $pattern_name The pattern name.
     159 */
     160function edit_pattern( string $pattern_name ) {
     161    wp_safe_redirect(
     162        get_edit_post_link(
     163            wp_insert_post(
     164                [
     165                    'post_type'   => get_pattern_post_type(),
     166                    'post_name'   => sanitize_text_field( $pattern_name ),
     167                    'post_status' => 'publish',
     168                ]
     169            ),
     170            'direct_link'
     171        )
     172    );
     173}
  • pattern-manager/tags/0.1.7/wp-modules/pattern-data-handlers/pattern-data-handlers.php

    r2887710 r2904680  
    357357    $pattern['content'] = move_block_images_to_theme( $pattern['content'] );
    358358
    359     // phpcs:ignore
    360     $file_contents = "<?php
    361 /**
    362  * Title: " . addcslashes( $pattern['title'], '\'' ) . '
     359    $file_contents = '<?php
     360/**
     361 * Title: ' . addcslashes( $pattern['title'], '\'' ) . '
    363362 * Slug: ' . $pattern['name'] . '
    364363 * Description: ' . $pattern['description'] . '
  • pattern-manager/trunk/README.md

    r2887723 r2904680  
    55Requires at least: 6.1
    66Tested up to: 6.2
    7 Stable tag: 0.1.6
     7Stable tag: 0.1.7
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    4747 * Find and copy all image files used into your theme.
    4848
     49## Docs & Repo
    4950
    50 ## Help & Docs
    51 
    52 User and developer docs for Pattern Manager [can be found here](https://developer.wpengine.com/pattern-manager/).
     51* [User and developer docs](https://developer.wpengine.com/pattern-manager/)
     52* [GitHub repo](https://github.com/studiopress/pattern-manager/)
    5353
    5454## Installation
     
    9191## Screenshots
    9292
    93 1. A dedicated inferface to browse, design, build, and save WordPress pattern files.
     931. A dedicated interface to browse, design, build, and save WordPress pattern files.
    94942. Easily assign pattern categories, keywords, descriptions, and more.
    9595
    9696## Changelog
    9797
     98### 0.1.7
     99* Add a link to the GitHub repo.
     100
    98101### 0.1.6
    99102 * Readme file changes.
    100  
     103
    101104### 0.1.5
    102105 * Initial release.
  • pattern-manager/trunk/pattern-manager.php

    r2887723 r2904680  
    33 * Plugin Name: Pattern Manager
    44 * Description: Create and maintain patterns.
    5  * Version: 0.1.6
     5 * Version: 0.1.7
    66 * Author: WP Engine
    77 * Author URI: wpengine.com
     
    4040            // If the module data exists, load it.
    4141            require $filepath;
    42         } else {
    43             // Translators: The name of the module, and the filename that needs to exist inside that module.
    44             echo esc_html( sprintf( __( 'The module called "%1$s" has a problem. It needs a file called "%2$s" to exist in its root directory.', 'pattern-manager' ), $module_name, $filename ) );
    45             exit;
    4642        }
    4743    }
  • pattern-manager/trunk/wp-modules/api-data/api-data.php

    r2887710 r2904680  
    113113 * @return bool
    114114 */
    115 function permission_check() {
     115function permission_check(): bool {
    116116    return current_user_can( 'manage_options' );
    117117}
  • pattern-manager/trunk/wp-modules/app/app.php

    r2887710 r2904680  
    6868/**
    6969 * Set the URL for the link in the menu.
     70 *
     71 * @return string The page's hook suffix.
    7072 */
    71 function patternmanager_adminmenu_page() {
    72     add_menu_page(
     73function pattern_manager_admin_menu_page() {
     74    return add_menu_page(
    7375        __( 'Patterns', 'pattern-manager' ),
    7476        __( 'Patterns', 'pattern-manager' ),
     
    8082    );
    8183}
    82 add_action( 'admin_menu', __NAMESPACE__ . '\patternmanager_adminmenu_page' );
     84add_action( 'admin_menu', __NAMESPACE__ . '\pattern_manager_admin_menu_page' );
    8385
    8486/**
  • pattern-manager/trunk/wp-modules/app/js/build/index.asset.php

    r2887710 r2904680  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'b221603e0b4f10657559');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => '7ebb3b65857a52bd5744');
  • pattern-manager/trunk/wp-modules/app/js/build/index.css

    r2887710 r2904680  
    1 html body.toplevel_page_pattern-manager{height:100% !important;background:#fff}.interface-interface-skeleton__html-container{padding-top:0 !important}.toplevel_page_pattern-manager #wpcontent{padding-left:0}#wpfooter{display:none}#wpbody{height:100%;background:#f1f1f1}.editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper>*,.editor-styles-wrapper .block-editor-block-list__layout.is-root-container>*,.wp-block{max-width:initial}.components-snackbar{z-index:999999999999;position:fixed;bottom:10px;left:10px;border:1px solid rgba(255,255,255,.2784313725)}#pattern-manager-app{box-sizing:border-box;background:#f1f1f1;font-size:16px}#pattern-manager-app *{box-sizing:border-box !important}#pattern-manager-app .pattern-manager-header-container{z-index:10;position:-webkit-sticky;position:sticky;display:flex;justify-content:flex-end;align-items:center;width:100%;gap:1.5rem;flex-shrink:0;flex-wrap:wrap;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);margin-left:auto;margin-right:auto;padding:1rem 3rem 1rem 3rem;top:32px}@media(max-width: 782px){#pattern-manager-app .pattern-manager-header-container{top:46px}}#pattern-manager-app .pattern-manager-header-container .header-container-logo{position:relative;margin-right:auto;text-align:center;display:table}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-svg{height:30px;width:30px}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-title{display:table-cell;font-size:16px;font-weight:600;vertical-align:middle;padding-left:10px;padding-bottom:4px}#pattern-manager-app .pattern-manager-header-container .header-container-inner{display:flex;flex-wrap:wrap;gap:.5rem}#pattern-manager-app .patternmanager-theme-patterns{width:100%;padding:3rem;border:solid 3rem #f1f1f1;border-radius:2px;background:#fff}@media(max-width: 1024px){#pattern-manager-app .patternmanager-theme-patterns{border-width:2rem;padding:2rem}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner{font-size:14px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{display:grid;grid-template-columns:300px 1fr;grid-gap:3rem}@media(max-width: 1200px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:220px 1fr}}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:1fr}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar{display:block}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search{margin-bottom:2.5rem}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search-count{margin-top:-24px;font-weight:600}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-categories{display:flex;flex-wrap:wrap;gap:5px}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:block;height:48px;margin-bottom:2px;text-align:left;width:100%}@media(max-width: 960px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:inline-flex;width:unset}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):hover,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):focus-visible{background:#f5f5f5;transition:all .2s ease;color:var(--wp-admin-theme-color)}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .grid-empty{margin-left:auto;margin-right:auto;padding:2.5rem;width:auto;text-align:center;background:#fff;border-radius:.25rem}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid{width:100%;display:grid;grid-template-columns:repeat(3, minmax(300px, 1fr));grid-gap:2rem}@media(max-width: 1729px){#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr))}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item{position:relative;box-sizing:border-box;margin-bottom:50px;min-height:300px;border:solid 1px #ddd;border-radius:5px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item::before{content:"";display:block}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner{height:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview{display:flex;z-index:0;flex-grow:1;position:relative;height:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader{position:absolute;top:0;left:0;width:100%;height:300px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader::before{display:block;content:" ";border:3px solid rgba(0,0,0,0);border-top:3px solid #c7c7c7;border-radius:50%;width:30px;height:30px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px)}@-webkit-keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-outer{position:relative;width:100%;display:flex;align-items:center;border-radius:5px;min-height:300px;overflow:hidden}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-inner{overflow:hidden}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview iframe{-webkit-animation:.6s ease 0s normal forwards 1 fadein;animation:.6s ease 0s normal forwards 1 fadein}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions{position:absolute;bottom:20px;width:100%;margin-left:auto;margin-right:auto;padding:20px;opacity:0}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions a.item-action-button{border-right:1px solid #404040}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button{z-index:50;background:rgba(0,0,0,0);cursor:pointer;color:#c6c6c6;height:46px;justify-content:center;padding:15px 20px;transition:.1s ease}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button:hover{color:#fff}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-icon{fill:currentcolor;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);width:20px;height:20px;margin-right:4px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-button-text{display:inline-block;position:relative;font-size:15px}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator{position:relative}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator::after{content:"";position:absolute;right:0;border-right:1px solid #404040;top:0;bottom:0}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions-inside{background:#1e1e1e;border-radius:6px;display:grid;grid-auto-columns:minmax(0, 1fr);grid-auto-flow:column}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within{border:1px solid #006ba1;border-radius:5px;transition:all .2s ease-in-out}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover .item-actions,#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within .item-actions{opacity:1;transition:all .2s ease-in-out}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-pattern-preview-heading{display:flex;justify-content:center;background:#fff;padding:1rem;position:absolute;bottom:-52px;width:100%}#pattern-manager-app .patternmanager-theme-patterns .patterns-container-inner .inner-grid .grid-no-patterns-found{font-weight:400}#pattern-manager-app .patternmanager-pattern-editor-loading-outer{justify-content:center;align-items:center;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner{display:flex;margin-left:auto;margin-right:auto;justify-content:center;align-items:center;width:100%;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner span{padding-left:.25rem;padding-right:.25rem;font-weight:600}#pattern-manager-app .patternmanager-pattern-editor-columns{width:100%;height:calc(100vh - 64px - 32px);display:grid;grid-template-columns:minmax(200px, 1fr) 280px;-moz-column-gap:0;column-gap:0}#pattern-manager-app .patternmanager-pattern-editor-columns .editor-styles-wrapper{height:100%;padding:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column{position:relative;overflow-y:scroll;background-color:#fff}#pattern-manager-app .patternmanager-pattern-editor-columns .column:first-child{padding-top:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column>:last-child{background:#fff;height:32px;border-top:1px solid #e0e0e0}#pattern-manager-app .patternmanager-pattern-editor-columns .column:last-child{background:#fff}#pattern-manager-app summary::marker,#pattern-manager-app summary::-webkit-details-marker{color:rgba(0,0,0,0);content:"";display:none}#pattern-manager-app summary::after{content:url("data:image/svg+xml,%3Csvg width=%2714%27 height=%278%27 viewBox=%270 0 14 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M1.50002 1L7.00002 6L12.5 1%27 stroke=%27%231E1E1E%27 stroke-width=%271.5%27/%3E%3C/svg%3E");display:inline-block;float:right}#pattern-manager-app details[open]>summary::after{transform:rotate(180deg)}.sidebar-closed .sticky{margin-left:60px}.components-modal__content{min-width:90vw;min-height:300px}input[type=checkbox]:checked::before{content:inherit}.components-modal__frame{max-height:90vh;min-height:90vh}.pm-type-boolean>div,.pm-type-string>div{@apply items-center}.pm-type-boolean .pm-label,.pm-type-string .pm-label{@apply col-span-2}.pm-type-boolean .pm-property,.pm-type-string .pm-property{@apply col-span-2}.pm-type-array .pm-label{@apply col-span-2}.pm-type-array .pm-property{@apply col-span-2}.pm-type-array input[type=checkbox],.pm-type-array input[type=radio],.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean input[type=checkbox],.pm-type-boolean input[type=radio],.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply w-[1.25rem] h-[1.25rem] rounded}.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply bg-wp-blue}.pm-type-array [type=checkbox]:checked:focus,.pm-type-boolean [type=checkbox]:checked:focus{@apply bg-wp-blue shadow-black}.pm-type-array [type=checkbox]:checked:hover,.pm-type-boolean [type=checkbox]:checked:hover{@apply bg-wp-blue-hover}.pm-font-sizes .pm-label,.pm-font-families .pm-label{@apply col-span-full}.pm-font-sizes .pm-property,.pm-font-families .pm-property{@apply col-span-full}.pm-typography-font-sizes>div,.pm-typography-font-families>div{@apply bg-gray-100 px-5 rounded}.pm-typography-font-sizes>div>div .grid,.pm-typography-font-families>div>div .grid{@apply gap-2 py-4}.pm-duotone .pm-property,.pm-gradients .pm-property,.pm-palette .pm-property{@apply col-span-full}.pm-duotone .pm-label,.pm-gradients .pm-label,.pm-palette .pm-label{@apply col-span-full}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pm-json-nav li{order:10}.pm-json-nav li:nth-child(2){order:1}.pm-json-nav li:nth-child(6){order:2}.pm-json-nav li:nth-child(4){order:3}.pm-json-nav li:nth-child(5){order:4}.pm-nav button:disabled{opacity:.6}.pm-nav ul{background:#1e1e1e;list-style:none;margin:0;padding-left:0;display:flex;border-radius:3px;gap:3px}.pm-nav li{color:#fff;position:relative;text-decoration:none;transition-duration:.3s;margin:0;border-radius:3px}.pm-nav li button{color:#fff;padding:8px 16px;border-radius:3px}.pm-nav li:hover,.pm-nav li:focus-within{background:#404040;cursor:pointer}.pm-nav li:focus-within button{outline:none}.pm-nav ul li ul{background:#1e1e1e;visibility:hidden;opacity:0;min-width:300px;position:absolute;transition:all .5s ease;margin-top:0;left:0;display:none;padding:10px 0;font-weight:400;gap:0}.pm-nav ul li ul li:hover{background:none}.pm-nav ul li ul li ul{left:300px;top:-10px;background:#2f2f2f}.pm-nav ul li ul li button{width:100%;text-align:left;color:#c6c6c6;transition-duration:.3s;padding:11px 16px}.pm-nav ul li ul li button:hover{color:#fff}.pm-nav ul li:hover>ul,.pm-nav ul li:focus-within>ul,.pm-nav ul li ul:hover,.pm-nav ul li ul:focus{visibility:visible;opacity:1;display:block}.pm-nav ul li ul li{clear:both;width:100%}
     1html body.toplevel_page_pattern-manager{height:100% !important;background:#fff}.interface-interface-skeleton__html-container{padding-top:0 !important}.toplevel_page_pattern-manager #wpcontent{padding-left:0}#wpfooter{display:none}#wpbody{height:100%;background:#f1f1f1}.editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper>*,.editor-styles-wrapper .block-editor-block-list__layout.is-root-container>*,.wp-block{max-width:initial}.components-snackbar{z-index:999999999999;position:fixed;bottom:10px;left:10px;border:1px solid rgba(255,255,255,.2784313725)}#pattern-manager-app{box-sizing:border-box;background:#f1f1f1;font-size:16px}#pattern-manager-app *{box-sizing:border-box !important}#pattern-manager-app .pattern-manager-header-container{z-index:10;position:-webkit-sticky;position:sticky;display:flex;justify-content:flex-end;align-items:center;width:100%;gap:1.5rem;flex-shrink:0;flex-wrap:wrap;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);margin-left:auto;margin-right:auto;padding:1rem 3rem 1rem 3rem;top:32px}@media(max-width: 782px){#pattern-manager-app .pattern-manager-header-container{top:46px}}#pattern-manager-app .pattern-manager-header-container .header-container-logo{position:relative;margin-right:auto;text-align:center;display:table}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-svg{height:30px;width:30px}#pattern-manager-app .pattern-manager-header-container .header-container-logo .logo-title{display:table-cell;font-size:16px;font-weight:600;vertical-align:middle;padding-left:10px;padding-bottom:4px}#pattern-manager-app .pattern-manager-header-container .header-container-inner{display:flex;flex-wrap:wrap;gap:.5rem}#pattern-manager-app .pattern-manager-theme-patterns{width:100%;padding:3rem;border:solid 3rem #f1f1f1}#pattern-manager-app .patternmanager-pattern-editor-loading-outer{justify-content:center;align-items:center;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner{display:flex;margin-left:auto;margin-right:auto;justify-content:center;align-items:center;width:100%;height:100vh;min-height:100%}#pattern-manager-app .patternmanager-pattern-editor-loading-outer .patternmanager-pattern-editor-loading-inner span{padding-left:.25rem;padding-right:.25rem;font-weight:600}#pattern-manager-app .patternmanager-pattern-editor-columns{width:100%;height:calc(100vh - 64px - 32px);display:grid;grid-template-columns:minmax(200px, 1fr) 280px;-moz-column-gap:0;column-gap:0}#pattern-manager-app .patternmanager-pattern-editor-columns .editor-styles-wrapper{height:100%;padding:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column{position:relative;overflow-y:scroll;background-color:#fff}#pattern-manager-app .patternmanager-pattern-editor-columns .column:first-child{padding-top:0}#pattern-manager-app .patternmanager-pattern-editor-columns .column>:last-child{background:#fff;height:32px;border-top:1px solid #e0e0e0}#pattern-manager-app .patternmanager-pattern-editor-columns .column:last-child{background:#fff}#pattern-manager-app summary::marker,#pattern-manager-app summary::-webkit-details-marker{color:rgba(0,0,0,0);content:"";display:none}#pattern-manager-app summary::after{content:url("data:image/svg+xml,%3Csvg width=%2714%27 height=%278%27 viewBox=%270 0 14 8%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M1.50002 1L7.00002 6L12.5 1%27 stroke=%27%231E1E1E%27 stroke-width=%271.5%27/%3E%3C/svg%3E");display:inline-block;float:right}#pattern-manager-app details[open]>summary::after{transform:rotate(180deg)}.sidebar-closed .sticky{margin-left:60px}.components-modal__content{min-width:90vw;min-height:300px}input[type=checkbox]:checked::before{content:inherit}.components-modal__frame{max-height:90vh;min-height:90vh}.pm-type-boolean>div,.pm-type-string>div{@apply items-center}.pm-type-boolean .pm-label,.pm-type-string .pm-label{@apply col-span-2}.pm-type-boolean .pm-property,.pm-type-string .pm-property{@apply col-span-2}.pm-type-array .pm-label{@apply col-span-2}.pm-type-array .pm-property{@apply col-span-2}.pm-type-array input[type=checkbox],.pm-type-array input[type=radio],.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean input[type=checkbox],.pm-type-boolean input[type=radio],.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply w-[1.25rem] h-[1.25rem] rounded}.pm-type-array [type=checkbox]:checked,.pm-type-array [type=radio]:checked,.pm-type-boolean [type=checkbox]:checked,.pm-type-boolean [type=radio]:checked{@apply bg-wp-blue}.pm-type-array [type=checkbox]:checked:focus,.pm-type-boolean [type=checkbox]:checked:focus{@apply bg-wp-blue shadow-black}.pm-type-array [type=checkbox]:checked:hover,.pm-type-boolean [type=checkbox]:checked:hover{@apply bg-wp-blue-hover}.pm-font-sizes .pm-label,.pm-font-families .pm-label{@apply col-span-full}.pm-font-sizes .pm-property,.pm-font-families .pm-property{@apply col-span-full}.pm-typography-font-sizes>div,.pm-typography-font-families>div{@apply bg-gray-100 px-5 rounded}.pm-typography-font-sizes>div>div .grid,.pm-typography-font-families>div>div .grid{@apply gap-2 py-4}.pm-duotone .pm-property,.pm-gradients .pm-property,.pm-palette .pm-property{@apply col-span-full}.pm-duotone .pm-label,.pm-gradients .pm-label,.pm-palette .pm-label{@apply col-span-full}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pm-json-nav li{order:10}.pm-json-nav li:nth-child(2){order:1}.pm-json-nav li:nth-child(6){order:2}.pm-json-nav li:nth-child(4){order:3}.pm-json-nav li:nth-child(5){order:4}.pm-nav button:disabled{opacity:.6}.pm-nav ul{background:#1e1e1e;list-style:none;margin:0;padding-left:0;display:flex;border-radius:3px;gap:3px}.pm-nav li{color:#fff;position:relative;text-decoration:none;transition-duration:.3s;margin:0;border-radius:3px}.pm-nav li button{color:#fff;padding:8px 16px;border-radius:3px}.pm-nav li:hover,.pm-nav li:focus-within{background:#404040;cursor:pointer}.pm-nav li:focus-within button{outline:none}.pm-nav ul li ul{background:#1e1e1e;visibility:hidden;opacity:0;min-width:300px;position:absolute;transition:all .5s ease;margin-top:0;left:0;display:none;padding:10px 0;font-weight:400;gap:0}.pm-nav ul li ul li:hover{background:none}.pm-nav ul li ul li ul{left:300px;top:-10px;background:#2f2f2f}.pm-nav ul li ul li button{width:100%;text-align:left;color:#c6c6c6;transition-duration:.3s;padding:11px 16px}.pm-nav ul li ul li button:hover{color:#fff}.pm-nav ul li:hover>ul,.pm-nav ul li:focus-within>ul,.pm-nav ul li ul:hover,.pm-nav ul li ul:focus{visibility:visible;opacity:1;display:block}.pm-nav ul li ul li{clear:both;width:100%}
     2.pattern-manager-theme-patterns{width:100%;border-radius:2px;background:#fff}@media(max-width: 1024px){.pattern-manager-theme-patterns{border-width:2rem;padding:2rem}}.pattern-manager-theme-patterns .patterns-container-inner{font-size:14px}.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{display:grid;grid-template-columns:300px 1fr;grid-gap:3rem}@media(max-width: 1200px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:220px 1fr}}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-columns{grid-template-columns:1fr}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar{display:block}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search{margin-bottom:2.5rem}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-search-count{margin-top:-24px;font-weight:600}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .pattern-categories{display:flex;flex-wrap:wrap;gap:5px}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:block;height:48px;margin-bottom:2px;text-align:left;width:100%}@media(max-width: 960px){.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category{display:inline-flex;width:unset}}.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):hover,.pattern-manager-theme-patterns .patterns-container-inner .pattern-inner-sidebar .category:not(.category-selected):focus-visible{background:#f5f5f5;transition:all .2s ease;color:var(--wp-admin-theme-color)}.pattern-manager-theme-patterns .patterns-container-inner .grid-empty{margin-left:auto;margin-right:auto;padding:2.5rem;width:auto;text-align:center;background:#fff;border-radius:.25rem}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid{width:100%;display:grid;grid-template-columns:repeat(3, minmax(300px, 1fr));grid-gap:2rem}@media(max-width: 1729px){.pattern-manager-theme-patterns .patterns-container-inner .inner-grid{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr))}}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item{position:relative;box-sizing:border-box;margin-bottom:50px;min-height:300px;border:solid 1px #ddd;border-radius:5px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item[role=button]{cursor:pointer}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item::before{content:"";display:block}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner{height:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview{display:flex;z-index:0;flex-grow:1;position:relative;height:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader{position:absolute;top:0;left:0;width:100%;height:300px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-loader::before{display:block;content:" ";border:3px solid rgba(0,0,0,0);border-top:3px solid #c7c7c7;border-radius:50%;width:30px;height:30px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px)}@-webkit-keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein{0%{opacity:0}70%{opacity:0}100%{opacity:1}}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-outer{position:relative;width:100%;display:flex;align-items:center;border-radius:5px;min-height:300px;overflow:hidden}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview .pattern-preview-iframe-inner{overflow:hidden}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-inner .item-pattern-preview iframe{-webkit-animation:.6s ease 0s normal forwards 1 fadein;animation:.6s ease 0s normal forwards 1 fadein}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions{position:absolute;bottom:20px;width:100%;margin-left:auto;margin-right:auto;padding:20px;opacity:0}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions a.item-action-button{border-right:1px solid #404040}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button{z-index:50;background:rgba(0,0,0,0);cursor:pointer;color:#c6c6c6;height:46px;justify-content:center;padding:15px 20px;transition:.1s ease}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button:hover{color:#fff}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-icon{fill:currentcolor;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);width:20px;height:20px;margin-right:4px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button .item-action-button-text{display:inline-block;position:relative;font-size:15px}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator{position:relative}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions .item-action-button-separator::after{content:"";position:absolute;right:0;border-right:1px solid #404040;top:0;bottom:0}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-actions-inside{background:#1e1e1e;border-radius:6px;display:grid;grid-auto-columns:minmax(0, 1fr);grid-auto-flow:column}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover,.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within{border:1px solid #006ba1;border-radius:5px;transition:all .2s ease-in-out}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:hover .item-actions,.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item:focus-within .item-actions{opacity:1;transition:all .2s ease-in-out}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-item .item-pattern-preview-heading{display:flex;justify-content:center;background:#fff;padding:1rem;position:absolute;bottom:-52px;width:100%}.pattern-manager-theme-patterns .patterns-container-inner .inner-grid .grid-no-patterns-found{font-weight:400}
  • pattern-manager/trunk/wp-modules/app/js/build/index.js

    r2887710 r2904680  
    1 !function(){"use strict";var e,t,n={505:function(e,t,n){n.d(t,{ZP:function(){return C}});var r=n(196),a=n.n(r);function o(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function i(){return i=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},i.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}var s=n(864),u=n(679),l=n.n(u);var d=a().createContext(),p={},f="PENDING",m="REJECTED",g=function(e){return e};function y(e){var t=e.defaultResolveComponent,n=void 0===t?g:t,r=e.render,u=e.onLoad;function y(e,t){void 0===t&&(t={});var g=function(e){return"function"==typeof e?{requireAsync:e,resolve:function(){},chunkName:function(){}}:e}(e),y={};function h(e){return t.cacheKey?t.cacheKey(e):g.resolve?g.resolve(e):"static"}function v(e,r,a){var o=t.resolveComponent?t.resolveComponent(e,r):n(e);if(t.resolveComponent&&!(0,s.isValidElementType)(o))throw new Error("resolveComponent returned something that is not a React component!");return l()(a,o,{preload:!0}),o}var b,M,I=function(e){var t=h(e),n=y[t];return n&&n.status!==m||((n=g.requireAsync(e)).status=f,y[t]=n,n.then((function(){n.status="RESOLVED"}),(function(t){console.error("loadable-components: failed to asynchronously load component",{fileName:g.resolve(e),chunkName:g.chunkName(e),error:t?t.message:t}),n.status=m}))),n},N=function(e){var n,a;function s(n){var r;return(r=e.call(this,n)||this).state={result:null,error:null,loading:!0,cacheKey:h(n)},function(e,t){if(!e){var n=new Error("loadable: "+t);throw n.framesToPop=1,n.name="Invariant Violation",n}}(!n.__chunkExtractor||g.requireSync,"SSR requires `@loadable/babel-plugin`, please install it"),n.__chunkExtractor?(!1===t.ssr||(g.requireAsync(n).catch((function(){return null})),r.loadSync(),n.__chunkExtractor.addChunk(g.chunkName(n))),function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)):(!1!==t.ssr&&(g.isReady&&g.isReady(n)||g.chunkName&&p[g.chunkName(n)])&&r.loadSync(),r)}a=e,(n=s).prototype=Object.create(a.prototype),n.prototype.constructor=n,c(n,a),s.getDerivedStateFromProps=function(e,t){var n=h(e);return i({},t,{cacheKey:n,loading:t.loading||t.cacheKey!==n})};var l=s.prototype;return l.componentDidMount=function(){this.mounted=!0;var e=this.getCache();e&&e.status===m&&this.setCache(),this.state.loading&&this.loadAsync()},l.componentDidUpdate=function(e,t){t.cacheKey!==this.state.cacheKey&&this.loadAsync()},l.componentWillUnmount=function(){this.mounted=!1},l.safeSetState=function(e,t){this.mounted&&this.setState(e,t)},l.getCacheKey=function(){return h(this.props)},l.getCache=function(){return y[this.getCacheKey()]},l.setCache=function(e){void 0===e&&(e=void 0),y[this.getCacheKey()]=e},l.triggerOnLoad=function(){var e=this;u&&setTimeout((function(){u(e.state.result,e.props)}))},l.loadSync=function(){if(this.state.loading)try{var e=v(g.requireSync(this.props),this.props,C);this.state.result=e,this.state.loading=!1}catch(e){console.error("loadable-components: failed to synchronously load component, which expected to be available",{fileName:g.resolve(this.props),chunkName:g.chunkName(this.props),error:e?e.message:e}),this.state.error=e}},l.loadAsync=function(){var e=this,t=this.resolveAsync();return t.then((function(t){var n=v(t,e.props,C);e.safeSetState({result:n,loading:!1},(function(){return e.triggerOnLoad()}))})).catch((function(t){return e.safeSetState({error:t,loading:!1})})),t},l.resolveAsync=function(){var e=this.props,t=(e.__chunkExtractor,e.forwardedRef,o(e,["__chunkExtractor","forwardedRef"]));return I(t)},l.render=function(){var e=this.props,n=e.forwardedRef,a=e.fallback,c=(e.__chunkExtractor,o(e,["forwardedRef","fallback","__chunkExtractor"])),s=this.state,u=s.error,l=s.loading,d=s.result;if(t.suspense&&(this.getCache()||this.loadAsync()).status===f)throw this.loadAsync();if(u)throw u;var p=a||t.fallback||null;return l?p:r({fallback:p,result:d,options:t,props:i({},c,{ref:n})})},s}(a().Component),w=(M=function(e){return a().createElement(d.Consumer,null,(function(t){return a().createElement(b,Object.assign({__chunkExtractor:t},e))}))},(b=N).displayName&&(M.displayName=b.displayName+"WithChunkExtractor"),M),C=a().forwardRef((function(e,t){return a().createElement(w,Object.assign({forwardedRef:t},e))}));return C.displayName="Loadable",C.preload=function(e){C.load(e)},C.load=function(e){return I(e)},C}return{loadable:y,lazy:function(e,t){return y(e,i({},t,{suspense:!0}))}}}var h=y({defaultResolveComponent:function(e){return e.__esModule?e.default:e.default||e},render:function(e){var t=e.result,n=e.props;return a().createElement(t,n)}}),v=h.loadable,b=h.lazy,M=y({onLoad:function(e,t){e&&t.forwardedRef&&("function"==typeof t.forwardedRef?t.forwardedRef(e):t.forwardedRef.current=e)},render:function(e){var t=e.result,n=e.props;return n.children?n.children(t):null}}),I=M.loadable,N=M.lazy,w=v;w.lib=I,b.lib=N;var C=w},236:function(e,t,n){var r=n(307);t.Z=(0,r.createContext)(void 0)},70:function(e,t,n){n.d(t,{i:function(){return r}});const{patternManager:r}=window},878:function(e,t,n){n.d(t,{Z:function(){return o}});var r=n(307),a=n(236);function o(){const e=(0,r.useContext)(a.Z);if(!e)throw new Error("usePmContext must be inside a provider");return e}},679:function(e,t,n){var r=n(864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?i:c[e.$$typeof]||a}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=i;var u=Object.defineProperty,l=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=l(n);d&&(i=i.concat(d(n)));for(var c=s(t),g=s(n),y=0;y<i.length;++y){var h=i[y];if(!(o[h]||r&&r[h]||g&&g[h]||c&&c[h])){var v=p(n,h);try{u(t,h,v)}catch(e){}}}}return t}},921:function(e,t){var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,M=n?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case l:case d:case o:case c:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case g:case s:return e;default:return t}}case a:return t}}}function N(e){return I(e)===d}t.AsyncMode=l,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=y,t.Memo=g,t.Portal=a,t.Profiler=c,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return N(e)||I(e)===l},t.isConcurrentMode=N,t.isContextConsumer=function(e){return I(e)===u},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return I(e)===p},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===y},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===a},t.isProfiler=function(e){return I(e)===c},t.isStrictMode=function(e){return I(e)===i},t.isSuspense=function(e){return I(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===c||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===b||e.$$typeof===M||e.$$typeof===h)},t.typeOf=I},864:function(e,t,n){e.exports=n(921)},196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n},444:function(e){e.exports=window.wp.primitives}},r={};function a(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={exports:{}};return n[e](o,o.exports,a),o.exports}a.m=n,a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.d=function(e,t){for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=function(e){return Promise.all(Object.keys(a.f).reduce((function(t,n){return a.f[n](e,t),t}),[]))},a.u=function(e){return e+".js"},a.miniCssF=function(e){},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="patternmanager-app:",a.l=function(n,r,o,i){if(e[n])e[n].push(r);else{var c,s;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+o){c=d;break}}c||(s=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,a.nc&&c.setAttribute("nonce",a.nc),c.setAttribute("data-webpack",t+o),c.src=n),e[n]=[r];var p=function(t,r){c.onerror=c.onload=null,clearTimeout(f);var a=e[n];if(delete e[n],c.parentNode&&c.parentNode.removeChild(c),a&&a.forEach((function(e){return e(r)})),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=p.bind(null,c.onerror),c.onload=p.bind(null,c.onload),s&&document.head.appendChild(c)}},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e}(),function(){var e={826:0};a.f.j=function(t,n){var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=o);var i=a.p+a.u(t),c=new Error;a.l(i,(function(n){if(a.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",c.name="ChunkLoadError",c.type=o,c.request=i,r[1](c)}}),"chunk-"+t,t)}};var t=function(t,n){var r,o,i=n[0],c=n[1],s=n[2],u=0;if(i.some((function(t){return 0!==e[t]}))){for(r in c)a.o(c,r)&&(a.m[r]=c[r]);s&&s(a)}for(t&&t(n);u<i.length;u++)o=i[u],a.o(e,o)&&e[o]&&e[o][0](),e[o]=0},n=self.webpackChunkpatternmanager_app=self.webpackChunkpatternmanager_app||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){var e=a(307),t=window.ReactDOM,n=a.n(t),r=a(70),o=a(236),i=a(736),c=a(609);function s(){return(0,e.createElement)("div",{className:"pattern-manager-header-container"},(0,e.createElement)("div",{className:"header-container-logo"},(0,e.createElement)("img",{alt:(0,i.__)("WP Engine logo","pattern-manager"),className:"logo-svg","aria-hidden":"true",src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0iV1BFLUxPR08tUy1EZWZhdWx0IiB3aWR0aD0iMTEyLjk5MiIgaGVpZ2h0PSIxNTEuNDc1IiB2aWV3Qm94PSItMC4wNjggMC4wMDYgMTA4LjEyNyAxMDguMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzBlY2FkNDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDAyODM4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0ibG9nb21hcmsiPgogICAgPHBhdGggaWQ9IlBhdGhfODIiIGRhdGEtbmFtZT0iUGF0aCA4MiIgY2xhc3M9ImNscy0xIiBkPSJNMjU5LjQsNDIzLjYwOWgzNC43Mjl2LTI2LjQybC04LjMwNy04LjMwOEgyNjcuNzA1bC04LjMsOC4zMDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIyLjcxOCAtMzE1LjUxMykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzgzIiBkYXRhLW5hbWU9IlBhdGggODMiIGNsYXNzPSJjbHMtMSIgZD0iTTM2NS4xODIsMjkxLjRsLTguMzA5LDguMzA5djE4LjExNWw4LjMwOSw4LjMwNkgzOTEuNlYyOTEuNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTEgLTI1NC43MTYpIi8+CiAgICA8cGF0aCBpZD0iUGF0aF84NCIgZGF0YS1uYW1lPSJQYXRoIDg0IiBjbGFzcz0iY2xzLTEiIGQ9Ik0yOTQuMTMxLDE5My45MkgyNTkuNHYyNi40MjRsOC4zMDYsOC4zMDZoMTguMTE1bDguMzA4LTguMzA2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyMi43MTggLTE5My45MikiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg1IiBkYXRhLW5hbWU9IlBhdGggODUiIGNsYXNzPSJjbHMtMSIgZD0iTTM5MS42LDQyMy42MDl2LTI2LjQyTDM4My4zLDM4OC44OEgzNTYuODc2djM0LjcyOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTExIC0zMTUuNTEzKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODYiIGRhdGEtbmFtZT0iUGF0aCA4NiIgY2xhc3M9ImNscy0xIiBkPSJNMTcwLjIyNiwxOTMuOTIybC04LjMwNiw4LjMwOVYyMjguNjVoMzQuNzI5VjE5My45MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxLjkyMSAtMTkzLjkyMSkiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg3IiBkYXRhLW5hbWU9IlBhdGggODciIGNsYXNzPSJjbHMtMSIgZD0iTTM1Ni44NzYsMTkzLjkydjI2LjQyNGw4LjMwOSw4LjMwNkgzOTEuNlYxOTMuOTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjgzLjUxMSAtMTkzLjkyKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODgiIGRhdGEtbmFtZT0iUGF0aCA4OCIgY2xhc3M9ImNscy0xIiBkPSJNMjk3LjI5MiwzMzQuMjc2YTQuOTc1LDQuOTc1LDAsMSwxLDQuOTc1LTQuOTc1LDQuOTc1LDQuOTc1LDAsMCwxLTQuOTc1LDQuOTc1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQzLjI0NSAtMjc1LjI1MykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg5IiBkYXRhLW5hbWU9IlBhdGggODkiIGNsYXNzPSJjbHMtMSIgZD0iTTE5Ni42NSwyOTEuNEgxNjEuOTIxdjM0LjczaDI2LjQyMWw4LjMwOC04LjMwNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0yNTQuNzE2KSIvPgogICAgPHBhdGggaWQ9IlBhdGhfOTAiIGRhdGEtbmFtZT0iUGF0aCA5MCIgY2xhc3M9ImNscy0xIiBkPSJNMTk2LjY1LDM5Ny4xODRsLTguMzA4LTguMzA4SDE2MS45MjF2MzQuNzNoMjYuNDIxbDguMzA4LTguM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0zMTUuNTExKSIvPgogIDwvZz4KPC9zdmc+"}),(0,e.createElement)("h1",{className:"logo-title"},(0,i.__)("Pattern Manager","pattern-manager"))),(0,e.createElement)("div",{className:"header-container-inner"},(0,e.createElement)(c.Button,{variant:"primary",href:`${r.i.siteUrl}/wp-admin/post-new.php?post_type=pm_pattern`},(0,i.__)("Create New Pattern","pattern-manager"))))}a(196);var u=a(878);function l(t){let{categories:n,currentCategory:r,setCurrentCategory:a}=t;return(0,e.createElement)("div",{className:"pattern-categories"},n.map((t=>{const n=["category",...r===t.name?["category-selected is-pressed"]:[]].join(" ");return(0,e.createElement)(c.Button,{type:"button",key:t.name,"aria-label":t.label,"aria-pressed":n.includes("category-selected"),className:n,onClick:()=>a((()=>t.name))},t.label)})))}var d=a(505);const p=(0,d.ZP)((async()=>a.e(896).then(a.bind(a,896)))),f=(0,d.ZP)((async()=>a.e(786).then(a.bind(a,786))));function m(t){let{themePatterns:n}=t;return function(t){const[,n]=(0,e.useState)();(0,e.useLayoutEffect)((()=>{function e(){n([window.innerWidth,window.innerHeight])}return n(t),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[...t])}([n]),(0,e.createElement)(e.Fragment,null,Object.entries(null!=n?n:{}).length?Object.entries(null!=n?n:{}).map((t=>{let[n,a]=t;return(0,e.createElement)("div",{key:n,className:"grid-item","aria-label":a.title},(0,e.createElement)("div",{className:"item-inner"},(0,e.createElement)("div",{className:"item-pattern-preview"},(0,e.createElement)(p,{key:n,url:r.i.siteUrl+"?pm_pattern_preview="+a.name,viewportWidth:a.viewportWidth||1280}))),(0,e.createElement)(f,{patternData:a}),(0,e.createElement)("div",{className:"item-pattern-preview-heading"},(0,e.createElement)("span",null,a.title)))})):(0,e.createElement)("div",{className:"grid-no-patterns-found"},(0,i.__)("No patterns found.","pattern-manager")))}function g(t){let{resultsLength:n,searchTerm:r}=t;return(0,e.createElement)("div",{className:"pattern-search-count"},(0,e.createElement)("span",null,(0,i.sprintf)(/* translators: %1$d: the number of patterns found, %2$s: the search term for patterns */
    2 (0,i._n)('%1$d pattern found for "%2$s"','%1$d patterns found for "%2$s"',n,"pattern-manager"),n,r)))}function y(e){return e.charAt(0).toUpperCase()+e.slice(1)}function h(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return y(e.replace(/([a-z])([A-Z1-9])/g,(e=>`${e[0]} ${e[1]}`)))}function v(){var t;const{patterns:n}=(0,u.Z)(),[r,a]=(0,e.useState)("all-patterns"),[o,s]=(0,e.useState)(""),d=(p=n.data,Object.entries(p).reduce(((e,t)=>{let[n,{categories:r}]=t;return{...e,[n]:{...p[n],categories:[...null!=r&&r.length?r:["uncategorized"]]}}}),{}));var p;const f=function(e,t,n){return function(e,t){return t?Object.entries(e).reduce(((e,n)=>{let[r,a]=n;return["title","keywords","description"].some((e=>{var n;return null===(n=a[e])||void 0===n?void 0:n.toString().toLowerCase().includes(t.toString().toLowerCase())}))?{...e,[r]:a}:e}),{}):e}(function(e,t){return t?Object.entries(e).reduce(((e,n)=>{var r;let[a,o]=n;return null!==(r=o.categories)&&void 0!==r&&r.includes(t)||"all-patterns"===t?{...e,[a]:o}:e}),{}):e}(e,t?"all-patterns":n),t.trim())}(d,o,r),y=function(e,t){return[{label:(0,i.__)("All Patterns","pattern-manager"),name:"all-patterns"},...(n=[...Object.entries(e).reduce(((e,t)=>{let[,{categories:n}]=t;return[...e,...n?null==n?void 0:n.filter((t=>!e.includes(t))):[]]}),[]).map((e=>{var n;return{label:(null===(n=t.find((t=>{let{name:n}=t;return n===e})))||void 0===n?void 0:n.label)||h(e.replace(/[-_]/g," ")),name:e}}))],"name",n.sort(((e,t)=>e.name>t.name?1:-1)),n)];var n}(d,n.patternCategories);return(0,e.createElement)("div",{className:"patternmanager-theme-patterns"},(0,e.createElement)("div",{className:"patterns-container-inner"},Object.entries(null!==(t=n.data)&&void 0!==t?t:{}).length?(0,e.createElement)("div",{className:"pattern-columns"},(0,e.createElement)("div",{className:"pattern-inner-sidebar",role:"region","aria-label":"Sort patterns by category"},(0,e.createElement)(c.SearchControl,{className:"pattern-search",label:(0,i.__)("Search Patterns","pattern-manager"),value:o,onChange:e=>{s(e)}}),o?(0,e.createElement)(g,{resultsLength:Object.keys(f).length,searchTerm:o}):(0,e.createElement)(l,{categories:y,currentCategory:r,setCurrentCategory:a})),(0,e.createElement)("div",{className:"inner-grid",role:"region","aria-label":"Block Patterns"},(0,e.createElement)(m,{themePatterns:f}))):(0,e.createElement)("div",{className:"grid-empty"},(0,e.createInterpolateElement)((0,i.__)("No patterns added yet. Click the <span></span> button to start creating and adding patterns.","pattern-manager"),{span:(0,e.createElement)("strong",null,(0,i.__)("Create New Pattern","pattern-manager"))}))))}n().render((0,e.createElement)((function(){const t=function(t){const[n,a]=(0,e.useState)(t);return{data:n,deletePattern:function(e){return a(function(e,t){const{[e]:{},...n}=t;return n}(e,n)),fetch(r.i.apiEndpoints.deletePatternEndpoint,{method:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json","X-WP-Nonce":r.i.apiNonce},body:JSON.stringify({patternName:e})})},patternCategories:r.i.patternCategories}}(r.i.patterns),n={apiEndpoints:r.i.apiEndpoints,patternCategories:r.i.patternCategories,patterns:t,siteUrl:r.i.siteUrl};return(0,e.createElement)(o.Z.Provider,{value:n},(0,e.createElement)(s,null),(0,e.createElement)(v,null))}),null),document.getElementById("pattern-manager-app"))}()}();
     1!function(){"use strict";var e,t,n={505:function(e,t,n){n.d(t,{ZP:function(){return C}});var r=n(196),o=n.n(r);function a(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function i(){return i=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},i.apply(this,arguments)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}var s=n(864),l=n(679),u=n.n(l);var d=o().createContext(),p={},f="PENDING",m="REJECTED",g=function(e){return e};function y(e){var t=e.defaultResolveComponent,n=void 0===t?g:t,r=e.render,l=e.onLoad;function y(e,t){void 0===t&&(t={});var g=function(e){return"function"==typeof e?{requireAsync:e,resolve:function(){},chunkName:function(){}}:e}(e),y={};function h(e){return t.cacheKey?t.cacheKey(e):g.resolve?g.resolve(e):"static"}function b(e,r,o){var a=t.resolveComponent?t.resolveComponent(e,r):n(e);if(t.resolveComponent&&!(0,s.isValidElementType)(a))throw new Error("resolveComponent returned something that is not a React component!");return u()(o,a,{preload:!0}),a}var v,M,I=function(e){var t=h(e),n=y[t];return n&&n.status!==m||((n=g.requireAsync(e)).status=f,y[t]=n,n.then((function(){n.status="RESOLVED"}),(function(t){console.error("loadable-components: failed to asynchronously load component",{fileName:g.resolve(e),chunkName:g.chunkName(e),error:t?t.message:t}),n.status=m}))),n},N=function(e){var n,o;function s(n){var r;return(r=e.call(this,n)||this).state={result:null,error:null,loading:!0,cacheKey:h(n)},function(e,t){if(!e){var n=new Error("loadable: "+t);throw n.framesToPop=1,n.name="Invariant Violation",n}}(!n.__chunkExtractor||g.requireSync,"SSR requires `@loadable/babel-plugin`, please install it"),n.__chunkExtractor?(!1===t.ssr||(g.requireAsync(n).catch((function(){return null})),r.loadSync(),n.__chunkExtractor.addChunk(g.chunkName(n))),function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)):(!1!==t.ssr&&(g.isReady&&g.isReady(n)||g.chunkName&&p[g.chunkName(n)])&&r.loadSync(),r)}o=e,(n=s).prototype=Object.create(o.prototype),n.prototype.constructor=n,c(n,o),s.getDerivedStateFromProps=function(e,t){var n=h(e);return i({},t,{cacheKey:n,loading:t.loading||t.cacheKey!==n})};var u=s.prototype;return u.componentDidMount=function(){this.mounted=!0;var e=this.getCache();e&&e.status===m&&this.setCache(),this.state.loading&&this.loadAsync()},u.componentDidUpdate=function(e,t){t.cacheKey!==this.state.cacheKey&&this.loadAsync()},u.componentWillUnmount=function(){this.mounted=!1},u.safeSetState=function(e,t){this.mounted&&this.setState(e,t)},u.getCacheKey=function(){return h(this.props)},u.getCache=function(){return y[this.getCacheKey()]},u.setCache=function(e){void 0===e&&(e=void 0),y[this.getCacheKey()]=e},u.triggerOnLoad=function(){var e=this;l&&setTimeout((function(){l(e.state.result,e.props)}))},u.loadSync=function(){if(this.state.loading)try{var e=b(g.requireSync(this.props),this.props,C);this.state.result=e,this.state.loading=!1}catch(e){console.error("loadable-components: failed to synchronously load component, which expected to be available",{fileName:g.resolve(this.props),chunkName:g.chunkName(this.props),error:e?e.message:e}),this.state.error=e}},u.loadAsync=function(){var e=this,t=this.resolveAsync();return t.then((function(t){var n=b(t,e.props,C);e.safeSetState({result:n,loading:!1},(function(){return e.triggerOnLoad()}))})).catch((function(t){return e.safeSetState({error:t,loading:!1})})),t},u.resolveAsync=function(){var e=this.props,t=(e.__chunkExtractor,e.forwardedRef,a(e,["__chunkExtractor","forwardedRef"]));return I(t)},u.render=function(){var e=this.props,n=e.forwardedRef,o=e.fallback,c=(e.__chunkExtractor,a(e,["forwardedRef","fallback","__chunkExtractor"])),s=this.state,l=s.error,u=s.loading,d=s.result;if(t.suspense&&(this.getCache()||this.loadAsync()).status===f)throw this.loadAsync();if(l)throw l;var p=o||t.fallback||null;return u?p:r({fallback:p,result:d,options:t,props:i({},c,{ref:n})})},s}(o().Component),w=(M=function(e){return o().createElement(d.Consumer,null,(function(t){return o().createElement(v,Object.assign({__chunkExtractor:t},e))}))},(v=N).displayName&&(M.displayName=v.displayName+"WithChunkExtractor"),M),C=o().forwardRef((function(e,t){return o().createElement(w,Object.assign({forwardedRef:t},e))}));return C.displayName="Loadable",C.preload=function(e){C.load(e)},C.load=function(e){return I(e)},C}return{loadable:y,lazy:function(e,t){return y(e,i({},t,{suspense:!0}))}}}var h=y({defaultResolveComponent:function(e){return e.__esModule?e.default:e.default||e},render:function(e){var t=e.result,n=e.props;return o().createElement(t,n)}}),b=h.loadable,v=h.lazy,M=y({onLoad:function(e,t){e&&t.forwardedRef&&("function"==typeof t.forwardedRef?t.forwardedRef(e):t.forwardedRef.current=e)},render:function(e){var t=e.result,n=e.props;return n.children?n.children(t):null}}),I=M.loadable,N=M.lazy,w=b;w.lib=I,v.lib=N;var C=w},236:function(e,t,n){var r=n(307);t.Z=(0,r.createContext)(void 0)},70:function(e,t,n){n.d(t,{i:function(){return r}});const{patternManager:r}=window},679:function(e,t,n){var r=n(864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?i:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var c=s(t),g=s(n),y=0;y<i.length;++y){var h=i[y];if(!(a[h]||r&&r[h]||g&&g[h]||c&&c[h])){var b=p(n,h);try{l(t,h,b)}catch(e){}}}}return t}},921:function(e,t){var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,h=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,M=n?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case c:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case y:case g:case s:return e;default:return t}}case o:return t}}}function N(e){return I(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=g,t.Portal=o,t.Profiler=c,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return N(e)||I(e)===u},t.isConcurrentMode=N,t.isContextConsumer=function(e){return I(e)===l},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return I(e)===p},t.isFragment=function(e){return I(e)===a},t.isLazy=function(e){return I(e)===y},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===o},t.isProfiler=function(e){return I(e)===c},t.isStrictMode=function(e){return I(e)===i},t.isSuspense=function(e){return I(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===c||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===g||e.$$typeof===s||e.$$typeof===l||e.$$typeof===p||e.$$typeof===b||e.$$typeof===v||e.$$typeof===M||e.$$typeof===h)},t.typeOf=I},864:function(e,t,n){e.exports=n(921)},196:function(e){e.exports=window.React},609:function(e){e.exports=window.wp.components},307:function(e){e.exports=window.wp.element},736:function(e){e.exports=window.wp.i18n},444:function(e){e.exports=window.wp.primitives}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={exports:{}};return n[e](a,a.exports,o),a.exports}o.m=n,o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,{a:t}),t},o.d=function(e,t){for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.f={},o.e=function(e){return Promise.all(Object.keys(o.f).reduce((function(t,n){return o.f[n](e,t),t}),[]))},o.u=function(e){return e+".js"},o.miniCssF=function(e){},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="patternmanager-app:",o.l=function(n,r,a,i){if(e[n])e[n].push(r);else{var c,s;if(void 0!==a)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==n||d.getAttribute("data-webpack")==t+a){c=d;break}}c||(s=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,o.nc&&c.setAttribute("nonce",o.nc),c.setAttribute("data-webpack",t+a),c.src=n),e[n]=[r];var p=function(t,r){c.onerror=c.onload=null,clearTimeout(f);var o=e[n];if(delete e[n],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((function(e){return e(r)})),t)return t(r)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=p.bind(null,c.onerror),c.onload=p.bind(null,c.onload),s&&document.head.appendChild(c)}},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e}(),function(){var e={826:0};o.f.j=function(t,n){var r=o.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var a=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=a);var i=o.p+o.u(t),c=new Error;o.l(i,(function(n){if(o.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,r[1](c)}}),"chunk-"+t,t)}};var t=function(t,n){var r,a,i=n[0],c=n[1],s=n[2],l=0;if(i.some((function(t){return 0!==e[t]}))){for(r in c)o.o(c,r)&&(o.m[r]=c[r]);s&&s(o)}for(t&&t(n);l<i.length;l++)a=i[l],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},n=self.webpackChunkpatternmanager_app=self.webpackChunkpatternmanager_app||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){var e=o(307),t=window.ReactDOM,n=o.n(t),r=o(505),a=o(70),i=o(236),c=o(736),s=o(609);function l(){return(0,e.createElement)("div",{className:"pattern-manager-header-container"},(0,e.createElement)("div",{className:"header-container-logo"},(0,e.createElement)("img",{alt:(0,c.__)("WP Engine logo","pattern-manager"),className:"logo-svg","aria-hidden":"true",src:"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0iV1BFLUxPR08tUy1EZWZhdWx0IiB3aWR0aD0iMTEyLjk5MiIgaGVpZ2h0PSIxNTEuNDc1IiB2aWV3Qm94PSItMC4wNjggMC4wMDYgMTA4LjEyNyAxMDguMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogIzBlY2FkNDsKICAgICAgfQoKICAgICAgLmNscy0yIHsKICAgICAgICBmaWxsOiAjMDAyODM4OwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8ZyBpZD0ibG9nb21hcmsiPgogICAgPHBhdGggaWQ9IlBhdGhfODIiIGRhdGEtbmFtZT0iUGF0aCA4MiIgY2xhc3M9ImNscy0xIiBkPSJNMjU5LjQsNDIzLjYwOWgzNC43Mjl2LTI2LjQybC04LjMwNy04LjMwOEgyNjcuNzA1bC04LjMsOC4zMDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjIyLjcxOCAtMzE1LjUxMykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzgzIiBkYXRhLW5hbWU9IlBhdGggODMiIGNsYXNzPSJjbHMtMSIgZD0iTTM2NS4xODIsMjkxLjRsLTguMzA5LDguMzA5djE4LjExNWw4LjMwOSw4LjMwNkgzOTEuNlYyOTEuNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTEgLTI1NC43MTYpIi8+CiAgICA8cGF0aCBpZD0iUGF0aF84NCIgZGF0YS1uYW1lPSJQYXRoIDg0IiBjbGFzcz0iY2xzLTEiIGQ9Ik0yOTQuMTMxLDE5My45MkgyNTkuNHYyNi40MjRsOC4zMDYsOC4zMDZoMTguMTE1bDguMzA4LTguMzA2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIyMi43MTggLTE5My45MikiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg1IiBkYXRhLW5hbWU9IlBhdGggODUiIGNsYXNzPSJjbHMtMSIgZD0iTTM5MS42LDQyMy42MDl2LTI2LjQyTDM4My4zLDM4OC44OEgzNTYuODc2djM0LjcyOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yODMuNTExIC0zMTUuNTEzKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODYiIGRhdGEtbmFtZT0iUGF0aCA4NiIgY2xhc3M9ImNscy0xIiBkPSJNMTcwLjIyNiwxOTMuOTIybC04LjMwNiw4LjMwOVYyMjguNjVoMzQuNzI5VjE5My45MjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYxLjkyMSAtMTkzLjkyMSkiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg3IiBkYXRhLW5hbWU9IlBhdGggODciIGNsYXNzPSJjbHMtMSIgZD0iTTM1Ni44NzYsMTkzLjkydjI2LjQyNGw4LjMwOSw4LjMwNkgzOTEuNlYxOTMuOTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjgzLjUxMSAtMTkzLjkyKSIvPgogICAgPHBhdGggaWQ9IlBhdGhfODgiIGRhdGEtbmFtZT0iUGF0aCA4OCIgY2xhc3M9ImNscy0xIiBkPSJNMjk3LjI5MiwzMzQuMjc2YTQuOTc1LDQuOTc1LDAsMSwxLDQuOTc1LTQuOTc1LDQuOTc1LDQuOTc1LDAsMCwxLTQuOTc1LDQuOTc1IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQzLjI0NSAtMjc1LjI1MykiLz4KICAgIDxwYXRoIGlkPSJQYXRoXzg5IiBkYXRhLW5hbWU9IlBhdGggODkiIGNsYXNzPSJjbHMtMSIgZD0iTTE5Ni42NSwyOTEuNEgxNjEuOTIxdjM0LjczaDI2LjQyMWw4LjMwOC04LjMwNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0yNTQuNzE2KSIvPgogICAgPHBhdGggaWQ9IlBhdGhfOTAiIGRhdGEtbmFtZT0iUGF0aCA5MCIgY2xhc3M9ImNscy0xIiBkPSJNMTk2LjY1LDM5Ny4xODRsLTguMzA4LTguMzA4SDE2MS45MjF2MzQuNzNoMjYuNDIxbDguMzA4LTguM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNjEuOTIxIC0zMTUuNTExKSIvPgogIDwvZz4KPC9zdmc+"}),(0,e.createElement)("h1",{className:"logo-title"},(0,c.__)("Pattern Manager","pattern-manager"))),(0,e.createElement)("div",{className:"header-container-inner"},(0,e.createElement)(s.Button,{variant:"primary",href:`${a.i.siteUrl}/wp-admin/post-new.php?post_type=pm_pattern`},(0,c.__)("Create New Pattern","pattern-manager"))))}function u(t){let{categories:n,currentCategory:r,setCurrentCategory:o}=t;return(0,e.createElement)("div",{className:"pattern-categories"},n.map((t=>{const n=["category",...r===t.name?["category-selected is-pressed"]:[]].join(" ");return(0,e.createElement)(s.Button,{type:"button",key:t.name,"aria-label":t.label,"aria-pressed":n.includes("category-selected"),className:n,onClick:()=>o((()=>t.name))},t.label)})))}o(196);const d=(0,r.ZP)((async()=>o.e(896).then(o.bind(o,896))));function p(t){let{onSelectPattern:n,PatternActions:r,patterns:o,siteUrl:a}=t;return function(t){const[,n]=(0,e.useState)();(0,e.useLayoutEffect)((()=>{function e(){n([window.innerWidth,window.innerHeight])}return n(t),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[...t])}([o]),(0,e.createElement)(e.Fragment,null,Object.entries(null!=o?o:{}).length?Object.entries(null!=o?o:{}).map((t=>{let[o,i]=t;return(0,e.createElement)("div",{role:n?"button":void 0,key:o,onClick:()=>null==n?void 0:n(o),onKeyDown:()=>null==n?void 0:n(o),className:"grid-item","aria-label":i.title},(0,e.createElement)("div",{className:"item-inner"},(0,e.createElement)("div",{className:"item-pattern-preview"},(0,e.createElement)(d,{key:o,url:a+"?pm_pattern_preview="+i.name,viewportWidth:i.viewportWidth||1280}))),r?(0,e.createElement)(r,{patternData:i}):null,(0,e.createElement)("div",{className:"item-pattern-preview-heading"},(0,e.createElement)("span",null,i.title)))})):(0,e.createElement)("div",{className:"grid-no-patterns-found"},(0,c.__)("No patterns found.","pattern-manager")))}function f(t){let{resultsLength:n,searchTerm:r}=t;return(0,e.createElement)("div",{className:"pattern-search-count"},(0,e.createElement)("span",null,(0,c.sprintf)(/* translators: %1$d: the number of patterns found, %2$s: the search term for patterns */
     2(0,c._n)('%1$d pattern found for "%2$s"','%1$d patterns found for "%2$s"',n,"pattern-manager"),n,r)))}function m(e){return e.charAt(0).toUpperCase()+e.slice(1)}function g(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return m(e.replace(/([a-z])([A-Z1-9])/g,(e=>`${e[0]} ${e[1]}`)))}function y(t){let{onSelectPattern:n,PatternActions:r,patternCategories:o,patterns:a,siteUrl:i}=t;const[l,d]=(0,e.useState)("all-patterns"),[m,y]=(0,e.useState)(""),h=(b=a,Object.entries(b).reduce(((e,t)=>{let[n,{categories:r}]=t;return{...e,[n]:{...b[n],categories:[...null!=r&&r.length?r:["uncategorized"]]}}}),{}));var b;const v=function(e,t,n){return function(e,t){return t?Object.entries(e).reduce(((e,n)=>{let[r,o]=n;return["title","keywords","description"].some((e=>{var n;return null===(n=o[e])||void 0===n?void 0:n.toString().toLowerCase().includes(t.toString().toLowerCase())}))?{...e,[r]:o}:e}),{}):e}(function(e,t){return t?Object.entries(e).reduce(((e,n)=>{var r;let[o,a]=n;return null!==(r=a.categories)&&void 0!==r&&r.includes(t)||"all-patterns"===t?{...e,[o]:a}:e}),{}):e}(e,t?"all-patterns":n),t.trim())}(h,m,l),M=function(e,t){return[{label:(0,c.__)("All Patterns","pattern-manager"),name:"all-patterns"},...(n=[...Object.entries(e).reduce(((e,t)=>{let[,{categories:n}]=t;return[...e,...n?null==n?void 0:n.filter((t=>!e.includes(t))):[]]}),[]).map((e=>{var n;return{label:(null===(n=t.find((t=>{let{name:n}=t;return n===e})))||void 0===n?void 0:n.label)||g(e.replace(/[-_]/g," ")),name:e}}))],"name",n.sort(((e,t)=>e.name>t.name?1:-1)),n)];var n}(h,o);return(0,e.createElement)("div",{className:"pattern-manager-theme-patterns"},(0,e.createElement)("div",{className:"patterns-container-inner"},Object.entries(null!=a?a:{}).length?(0,e.createElement)("div",{className:"pattern-columns"},(0,e.createElement)("div",{className:"pattern-inner-sidebar",role:"region","aria-label":"Sort patterns by category"},(0,e.createElement)(s.SearchControl,{className:"pattern-search",label:(0,c.__)("Search Patterns","pattern-manager"),value:m,onChange:e=>{y(e)}}),m?(0,e.createElement)(f,{resultsLength:Object.keys(v).length,searchTerm:m}):(0,e.createElement)(u,{categories:M,currentCategory:l,setCurrentCategory:d})),(0,e.createElement)("div",{className:"inner-grid",role:"region","aria-label":"Block Patterns"},(0,e.createElement)(p,{onSelectPattern:n,PatternActions:r,patterns:v,siteUrl:i}))):(0,e.createElement)("div",{className:"grid-empty"},(0,e.createInterpolateElement)((0,c.__)("No patterns added yet. Click the <span></span> button to start creating and adding patterns.","pattern-manager"),{span:(0,e.createElement)("strong",null,(0,c.__)("Create New Pattern","pattern-manager"))}))))}const h=(0,r.ZP)((async()=>o.e(467).then(o.bind(o,467))));n().render((0,e.createElement)((function(){const t=function(t){const[n,r]=(0,e.useState)(t);return{data:n,deletePattern:function(e){return r(function(e,t){const{[e]:{},...n}=t;return n}(e,n)),fetch(a.i.apiEndpoints.deletePatternEndpoint,{method:"DELETE",headers:{Accept:"application/json","Content-Type":"application/json","X-WP-Nonce":a.i.apiNonce},body:JSON.stringify({patternName:e})})}}}(a.i.patterns),n={patterns:t};return(0,e.createElement)(i.Z.Provider,{value:n},(0,e.createElement)(l,null),(0,e.createElement)(y,{PatternActions:h,patternCategories:a.i.patternCategories,patterns:t.data,siteUrl:a.i.siteUrl}))}),null),document.getElementById("pattern-manager-app"))}()}();
  • pattern-manager/trunk/wp-modules/editor/editor.php

    r2887710 r2904680  
    1212namespace PatternManager\Editor;
    1313
     14use WP_Block_Pattern_Categories_Registry;
    1415use function PatternManager\PatternDataHandlers\delete_patterns_not_present;
    1516use function PatternManager\PatternDataHandlers\get_pattern_by_name;
     
    2324require_once trailingslashit( __DIR__ ) . 'utils.php';
    2425require_once trailingslashit( __DIR__ ) . 'model.php';
     26require_once trailingslashit( __DIR__ ) . 'block.php';
    2527
    2628/**
     
    264266        'patternManager',
    265267        [
    266             'activeTheme'  => basename( get_stylesheet_directory() ),
    267             'apiEndpoints' => array(
     268            'activeTheme'       => basename( get_stylesheet_directory() ),
     269            'apiEndpoints'      => array(
    268270                'getPatternNamesEndpoint' => get_rest_url( false, 'pattern-manager/v1/get-pattern-names/' ),
    269271            ),
    270             'apiNonce'     => wp_create_nonce( 'wp_rest' ),
    271             'patternNames' => \PatternManager\PatternDataHandlers\get_pattern_names(),
    272             'siteUrl'      => get_bloginfo( 'url' ),
     272            'apiNonce'          => wp_create_nonce( 'wp_rest' ),
     273            'patternCategories' => WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered(),
     274            'patternNames'      => \PatternManager\PatternDataHandlers\get_pattern_names(),
     275            'patterns'          => \PatternManager\PatternDataHandlers\get_theme_patterns_with_editor_links(),
     276            'siteUrl'           => get_bloginfo( 'url' ),
    273277        ]
    274278    );
     
    282286
    283287/**
    284  * If we are on the pattern-manager app page, register the patterns with WP.
    285  *
    286  * @return void
    287  */
    288 function register_block_patterns() {
    289     $current_screen = get_current_screen();
    290 
    291     if ( get_pattern_post_type() !== $current_screen->post_type ) {
    292         return;
    293     }
    294 
    295     $patterns = \PatternManager\PatternDataHandlers\get_theme_patterns();
    296 
    297     foreach ( $patterns as $pattern ) {
    298         if ( isset( $pattern['categories'] ) ) {
    299             foreach ( $pattern['categories'] as $category ) {
    300                 register_block_pattern_category( $category, array( 'label' => ucwords( str_replace( '-', ' ', $category ) ) ) );
    301             }
    302         }
    303         register_block_pattern(
    304             $pattern['name'],
    305             $pattern,
    306         );
    307     }
    308 }
    309 add_action( 'current_screen', __NAMESPACE__ . '\register_block_patterns', 9 );
    310 
    311 /**
    312288 * Enables the Core Comments block to render by adding a 'postId'.
    313289 *
  • pattern-manager/trunk/wp-modules/editor/js/build/index.asset.php

    r2887710 r2904680  
    1 <?php return array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '00bea5de8b08e75c8d11');
     1<?php return array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '08ab51970bd71abceb95');
  • pattern-manager/trunk/wp-modules/editor/js/build/index.css

    r2887710 r2904680  
    1 .edit-post-post-status,.edit-post-visual-editor__post-title-wrapper,.patternmanager-template-details~*{display:none!important}button.components-button.editor-post-save-draft.is-tertiary,button.components-button.editor-post-switch-to-draft.is-tertiary{display:none}.patternmanager-inserter-toggle,.patternmanager-post-type-modal-toggle{margin-bottom:-12px;margin-top:16px}.patternmanager-inserter-toggle label.components-toggle-control__label,.patternmanager-post-type-modal-toggle label.components-toggle-control__label{height:20px}#patternmanager-pattern-post-name-input-component{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;height:50px}@media only screen and (min-width:781.25px){#patternmanager-pattern-post-name-input-component{height:40px}}#patternmanager-pattern-post-name-input-component:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.components-panel__row-patternmanager-pattern-name-error{min-height:auto}.components-panel__row-patternmanager-pattern-name-error-inner{color:red;font-weight:600;margin-bottom:0;margin-top:0}.patternmanager-pattern-sidebar-tooltip{margin-bottom:15px;margin-top:5px}.patternmanager-pattern-sidebar-tooltip #tooltip-icon-helper-text{cursor:default;padding-left:8px}.patternmanager-pattern-sidebar-reverse-tooltip #tooltip-icon-helper-text{cursor:pointer;padding-right:8px}#patternmanager-pattern-editor-description-textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}#patternmanager-pattern-editor-description-textarea:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}
     1.edit-post-post-status,.edit-post-visual-editor__post-title-wrapper,.patternmanager-template-details~*{display:none!important}button.components-button.editor-post-save-draft.is-tertiary,button.components-button.editor-post-switch-to-draft.is-tertiary{display:none}.patternmanager-inserter-toggle,.patternmanager-post-type-modal-toggle{margin-bottom:-12px;margin-top:16px}.patternmanager-inserter-toggle label.components-toggle-control__label,.patternmanager-post-type-modal-toggle label.components-toggle-control__label{height:20px}#patternmanager-pattern-post-name-input-component{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;height:50px}@media only screen and (min-width:781.25px){#patternmanager-pattern-post-name-input-component{height:40px}}#patternmanager-pattern-post-name-input-component:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.components-panel__row-patternmanager-pattern-name-error{min-height:auto}.components-panel__row-patternmanager-pattern-name-error-inner{color:red;font-weight:600;margin-bottom:0;margin-top:0}.patternmanager-pattern-sidebar-tooltip{margin-bottom:15px;margin-top:5px}.patternmanager-pattern-sidebar-tooltip #tooltip-icon-helper-text{cursor:default;padding-left:8px}.patternmanager-pattern-sidebar-reverse-tooltip #tooltip-icon-helper-text{cursor:pointer;padding-right:8px}#patternmanager-pattern-editor-description-textarea{background-color:#fff;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}#patternmanager-pattern-editor-description-textarea:focus{border-color:#2684ff;box-shadow:0 0 0 1px #2684ff;transition:all .1s}.pm-pattern-container>*{max-width:none}.pm-pattern-container>.alignwide{margin-left:auto!important;margin-right:auto!important;max-width:var(--wp--style--global--wide-size,1280px)}.pm-pattern-container>:where(:not(.alignwide):not(.alignleft):not(.alignright):not(.alignfull)){margin-left:auto!important;margin-right:auto!important;max-width:var(--wp--style--global--content-size,640px)}.pm-pattern-block-modal{min-width:80%}
  • pattern-manager/trunk/wp-modules/editor/model.php

    r2887710 r2904680  
    5656
    5757    $pattern = get_pattern_by_name( $post->post_name );
    58 
    5958    update_pattern(
    6059        array_merge(
     
    7069    );
    7170
    72     // Prevent an infinite loop.
    73     remove_action( 'rest_after_insert_' . get_pattern_post_type(), __NAMESPACE__ . '\save_pattern_to_file' );
    74 
    7571    // Removes the post content, as it should be saved in the pattern .php file.
    7672    wp_update_post(
     
    8177    );
    8278
    83     add_action( 'rest_after_insert_' . get_pattern_post_type(), __NAMESPACE__ . '\save_pattern_to_file' );
    84 
    8579    tree_shake_theme_images( get_wp_filesystem_api(), 'copy_dir' );
    8680}
     
    129123
    130124    return update_pattern(
    131         $pattern
    132             ? array_merge(
    133                 $pattern,
    134                 [
    135                     $meta_key => $meta_value,
    136                 ]
    137             )
    138             : array_merge(
    139                 get_pattern_defaults(),
    140                 [
    141                     'name'  => $pattern_name,
    142                     'title' => $post->post_title,
    143                 ],
    144                 [ $meta_key => $meta_value ]
    145             )
     125        array_merge(
     126            get_pattern_defaults(),
     127            $pattern ? $pattern : [],
     128            [
     129                'name'  => $pattern_name,
     130                'title' => $post->post_title,
     131            ],
     132            [ $meta_key => $meta_value ]
     133        )
    146134    );
    147135}
     
    159147function get_metadata_from_pattern_file( $override, $post_id, $meta_key, $is_single ) {
    160148    $post = get_post( $post_id );
    161     if ( ! $post ) {
    162         return $override;
    163     }
    164 
    165     if ( get_pattern_post_type() !== $post->post_type ) {
     149    if ( ! $post || get_pattern_post_type() !== $post->post_type ) {
    166150        return $override;
    167151    }
    168152
    169153    $pattern = get_pattern_by_name( $post->post_name );
    170     if ( ! $pattern ) {
    171         return $override;
    172     }
    173 
    174154    if ( isset( $pattern[ $meta_key ] ) ) {
    175155        return $is_single ? $pattern[ $meta_key ] : [ $pattern[ $meta_key ] ];
     
    192172    }
    193173
     174    if ( 'duplicate' === filter_input( INPUT_GET, 'action' ) ) {
     175        duplicate_pattern( filter_input( INPUT_GET, 'name' ) );
     176    }
     177
    194178    if ( 'edit-pattern' === filter_input( INPUT_GET, 'action' ) ) {
    195         $new_post = wp_insert_post(
    196             [
    197                 'post_type'   => get_pattern_post_type(),
    198                 'post_name'   => sanitize_text_field( filter_input( INPUT_GET, 'name' ) ),
    199                 'post_status' => 'publish',
    200             ]
    201         );
    202 
    203         wp_safe_redirect(
    204             get_edit_post_link( $new_post, 'direct_link' )
    205         );
    206     }
    207 
    208     if ( 'duplicate' === filter_input( INPUT_GET, 'action' ) ) {
    209         $pattern_to_duplicate  = get_pattern_by_name( sanitize_text_field( filter_input( INPUT_GET, 'name' ) ) );
    210         $duplicate_pattern_ids = get_duplicate_pattern_ids( $pattern_to_duplicate['name'], get_theme_patterns() );
    211         if ( ! $duplicate_pattern_ids ) {
    212             return;
    213         }
    214 
    215         $new_pattern = array_merge(
    216             $pattern_to_duplicate,
    217             $duplicate_pattern_ids
    218         );
    219 
    220         update_pattern( $new_pattern );
    221 
    222         $new_post = wp_insert_post(
    223             [
    224                 'post_type'   => get_pattern_post_type(),
    225                 'post_name'   => $new_pattern['name'],
    226                 'post_status' => 'publish',
    227             ]
    228         );
    229 
    230         wp_safe_redirect(
    231             get_edit_post_link( $new_post, 'direct_link' )
    232         );
     179        edit_pattern( filter_input( INPUT_GET, 'name' ) );
    233180    }
    234181}
  • pattern-manager/trunk/wp-modules/editor/utils.php

    r2887710 r2904680  
    1212
    1313use WP_Query;
     14use function PatternManager\PatternDataHandlers\get_pattern_by_name;
     15use function PatternManager\PatternDataHandlers\get_theme_patterns;
     16use function PatternManager\PatternDataHandlers\update_pattern;
    1417
    1518/**
     
    116119    ) )->posts[0] ?? null;
    117120}
     121
     122/**
     123 * Duplicates a pattern.
     124 *
     125 * @param string $pattern_name The pattern name to duplicate.
     126 */
     127function duplicate_pattern( string $pattern_name ) {
     128    $pattern_to_duplicate  = get_pattern_by_name( sanitize_text_field( $pattern_name ) );
     129    $duplicate_pattern_ids = get_duplicate_pattern_ids( $pattern_to_duplicate['name'], get_theme_patterns() );
     130    if ( ! $duplicate_pattern_ids ) {
     131        return;
     132    }
     133
     134    $new_pattern = array_merge(
     135        $pattern_to_duplicate,
     136        $duplicate_pattern_ids
     137    );
     138
     139    update_pattern( $new_pattern );
     140
     141    wp_safe_redirect(
     142        get_edit_post_link(
     143            wp_insert_post(
     144                [
     145                    'post_type'   => get_pattern_post_type(),
     146                    'post_name'   => $new_pattern['name'],
     147                    'post_status' => 'publish',
     148                ]
     149            ),
     150            'direct_link'
     151        )
     152    );
     153}
     154
     155/**
     156 * Goes to the editor for a pattern.
     157 *
     158 * @param string $pattern_name The pattern name.
     159 */
     160function edit_pattern( string $pattern_name ) {
     161    wp_safe_redirect(
     162        get_edit_post_link(
     163            wp_insert_post(
     164                [
     165                    'post_type'   => get_pattern_post_type(),
     166                    'post_name'   => sanitize_text_field( $pattern_name ),
     167                    'post_status' => 'publish',
     168                ]
     169            ),
     170            'direct_link'
     171        )
     172    );
     173}
  • pattern-manager/trunk/wp-modules/pattern-data-handlers/pattern-data-handlers.php

    r2887710 r2904680  
    357357    $pattern['content'] = move_block_images_to_theme( $pattern['content'] );
    358358
    359     // phpcs:ignore
    360     $file_contents = "<?php
    361 /**
    362  * Title: " . addcslashes( $pattern['title'], '\'' ) . '
     359    $file_contents = '<?php
     360/**
     361 * Title: ' . addcslashes( $pattern['title'], '\'' ) . '
    363362 * Slug: ' . $pattern['name'] . '
    364363 * Description: ' . $pattern['description'] . '
Note: See TracChangeset for help on using the changeset viewer.